diff --git a/planetstack/core/xoslib/dashboards/xosTenant.html b/planetstack/core/xoslib/dashboards/xosTenant.html
index 6735da3..141e3ee 100644
--- a/planetstack/core/xoslib/dashboards/xosTenant.html
+++ b/planetstack/core/xoslib/dashboards/xosTenant.html
@@ -22,6 +22,7 @@
     <button class="btn btn-high btn-tenant-create">Create New Slice</button>
     <button class="btn btn-high btn-tenant-delete">Delete Slice</button>
     <button class="btn btn-high btn-tenant-add-user">Edit Users</button>
+    <button class="btn btn-high btn-tenant-download-ssh">SSH Commands</button>
     <button class="btn btn-high btn-tenant-save">Save</button>
   </div>
 </script>
@@ -63,6 +64,10 @@
 <div id="tenant-edit-users-dialog" title="Edit Users">
 <div id="tenant-edit-users-interior"></div>
 </div>
+
+<div id="tenant-ssh-commands-dialog" title="SSH Commands">
+<div id="tenant-ssh-commands-interior"></div>
+</div>
 
 <div id="xos-error-dialog" title="Error Message">
 </div>
diff --git a/planetstack/core/xoslib/objects/sliceplus.py b/planetstack/core/xoslib/objects/sliceplus.py
index 7e9836c..9187bff 100644
--- a/planetstack/core/xoslib/objects/sliceplus.py
+++ b/planetstack/core/xoslib/objects/sliceplus.py
@@ -19,6 +19,7 @@
             used_sites = {}
             used_deployments = {}
             sliverCount = 0
+            sshCommands = []
             for sliver in self.slivers.all():
                 site = sliver.node.site_deployment.site
                 deployment = sliver.node.site_deployment.deployment
@@ -26,6 +27,10 @@
                 used_deployments[deployment.name] = used_deployments.get(deployment.name, 0) + 1
                 sliverCount = sliverCount + 1
 
+                if (sliver.instance_id and sliver.instance_name):
+                    sshCommand = 'ssh -o "ProxyCommand ssh -q %s@%s" ubuntu@%s' % (sliver.instance_id, sliver.node.name, sliver.instance_name)
+                    sshCommands.append(sshCommand);
+
             users = {}
             for priv in SlicePrivilege.objects.filter(slice=self):
                 if not (priv.user.id in users.keys()):
@@ -37,7 +42,8 @@
                     "sliverCount": sliverCount,
                     "siteCount": len(used_sites.keys()),
                     "users": users,
-                    "roles": []}
+                    "roles": [],
+                    "sshCommands": sshCommands}
 
         if user:
             auser = self._sliceInfo["users"].get(user.id, None)
diff --git a/planetstack/core/xoslib/static/js/xosTenant.js b/planetstack/core/xoslib/static/js/xosTenant.js
index 286537d..07762ed 100644
--- a/planetstack/core/xoslib/static/js/xosTenant.js
+++ b/planetstack/core/xoslib/static/js/xosTenant.js
@@ -72,6 +72,7 @@
                      "click button.btn-tenant-delete": "deleteClicked",
                      "click button.btn-tenant-add-user": "addUserClicked",
                      "click button.btn-tenant-save": "saveClicked",
+                     "click button.btn-tenant-download-ssh": "downloadClicked",
                      },
 
             createClicked: function(e) {
@@ -86,6 +87,10 @@
                      XOSTenantApp.editUsers(this.options.linkedView.model);
                      },
 
+            downloadClicked: function(e) {
+                     XOSTenantApp.downloadSSH(this.options.linkedView.model);
+                     },
+
             saveClicked: function(e) {
                      model = this.options.linkedView.model;
                      model.tenantSiteCollection.putToSlice(model);
@@ -113,6 +118,7 @@
     tenantButtons: "#tenantButtons",
     tenantAddSliceInterior: "#tenant-addslice-interior",
     tenantEditUsersInterior: "#tenant-edit-users-interior",
+    tenantSSHCommandsInterior: "#tenant-ssh-commands-interior",
 });
 
 XOSTenantApp.setDirty = function(dirty) {
@@ -269,6 +275,51 @@
     $("#tenant-edit-users-dialog").dialog("open");
 };
 
+XOSTenantApp.downloadSSHOld = function(model) {
+    sshCommands = "";
+    for (index in model.attributes.sliceInfo.sshCommands) {
+         sshCommand = model.attributes.sliceInfo.sshCommands[index];
+         sshCommands = sshCommands + sshCommand + "\n";
+    }
+
+    if (sshCommands.length == 0) {
+         alert("this slice has no instantiated slivers yet");
+         return;
+    }
+
+    var myWindow = window.open("", "ssh_command_list",""); // "width=640, height=480");
+    myWindow.document.write("<html><head><title>SSH Commands</title></head><body><pre>" + sshCommands + "</pre></body></html>");
+    myWindow.document.close();
+};
+
+XOSTenantApp.downloadSSH = function(model) {
+    sshCommands = "";
+    for (index in model.attributes.sliceInfo.sshCommands) {
+         sshCommand = model.attributes.sliceInfo.sshCommands[index];
+         sshCommands = sshCommands + sshCommand + "\n";
+    }
+
+    if (sshCommands.length == 0) {
+         alert("this slice has no instantiated slivers yet");
+         return;
+    }
+
+    var htmlView = new HTMLView({html: "<pre>" + sshCommands + "</pre>"});
+    XOSTenantApp.tenantSSHCommandsInterior.show(htmlView);
+
+    $("#tenant-ssh-commands-dialog").dialog({
+       autoOpen: false,
+       modal: true,
+       width: 640,
+       buttons : {
+            "Ok" : function() {
+              $(this).dialog("close");
+            },
+          }
+        });
+    $("#tenant-ssh-commands-dialog").dialog("open");
+};
+
 XOSTenantApp.deleteSlice = function(model) {
     var app=this;
     app.deleteDialog(model, function() { console.log("afterDelete"); app.viewSlice(undefined); });
