Home › Forums › FABRIC General Questions and Discussion › Node#execute runs but node cannot be accessed from command-line
- This topic has 1 reply, 2 voices, and was last updated 3 years, 4 months ago by Ilya Baldin. 
- 
		AuthorPosts
- 
		
			
				
June 8, 2022 at 12:53 pm #2048I can’t SSH into my nodes on the FABRIC JupyterLab, but using node.execute I am able to remotely access the node. For reproducibility, I have used the hello_fabric.ipynb to look into this issue. I have attached a version of the hello_fabric.ipynb exactly as I have ran it, including all of the outputs and environment variable definitions. When I try and run the SSH Command associated with my node, I get: $ ssh -i /home/fabric/.ssh/id_rsa -J mwhicks2_0037146471@bastion-1.fabric-testbed.net rocky@129.114.110.125 
 The authenticity of host ‘bastion-1.fabric-testbed.net (152.54.15.12)’ can’t be established.
 ECDSA key fingerprint is SHA256:AIRhefx5rhgEfSSoO8NIc6g+ohFQuSU0yn0i7qGUkY8.
 Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
 Warning: Permanently added ‘bastion-1.fabric-testbed.net,152.54.15.12’ (ECDSA) to the list of known hosts.
 mwhicks2_0037146471@bastion-1.fabric-testbed.net: Permission denied (publickey,gssapi-keyex,gssapi-with-mic).
 kex_exchange_identification: Connection closed by remote hostNot sure what is going wrong here. I have also attached an ssh -v attempt here: https://pastebin.com/raw/CXEZHziG June 21, 2022 at 10:43 am #2165Mason, Here is a longer explanation of how to properly store your keys and SSH configuration in Jupyter Hub: The keys in /home/fabric/.ssh/ are not persistent across the container boots. It’s user’s responsibility to upload their keys at a location under /home/fabric/work directory, which is persistent. They can then point FABLib to use that as below: By default a rc file with the required environment variables is created at /home/fabric/work/fabric_config/fabric_rc export FABRIC_BASTION_KEY_LOCATION=/home/fabric/work/fabric_config/fabric-bastion 
 export FABRIC_SLICE_PRIVATE_KEY_FILE=/home/fabric/work/fabric_config/id_rsa
 export FABRIC_SLICE_PUBLIC_KEY_FILE=/home/fabric/work/fabric_config/id_rsa.pubWorkflow for SSH: - Update /home/fabric/work/fabric_config/ssh_config to reflect the correct keys and bastion user name
 SSH to the VMs using the following command
 ssh -F ~/work/fabric_config/ssh_config -i ~/work/fabric_config/id_rsa <username>@<mgmt-ip> Workflow for Notebooks: - Update the environment variables in /home/fabric/work/fabric_config/fabric_rc
- Import the environment variables in the notebooks as below
 fabric_rc_location=os.environ[‘HOME’]+”/work/fabric_config/fabric_rc” 
 if os.path.exists(fabric_rc_location):
 with open(fabric_rc_location, ‘r’) as f:
 for line in f:
 if line.startswith(‘export’):
 os.environ[line.split(‘=’)[0].split(‘export’)[1].strip()] = line.split(‘=’)[1].strip()ssh_key_file_priv=os.environ[“FABRIC_SLICE_PRIVATE_KEY_FILE”] 
 ssh_key_file_pub=os.environ[“FABRIC_SLICE_PUBLIC_KEY_FILE”]ssh_key_pub = None 
 with open (ssh_key_file_pub, “r”) as myfile:
 ssh_key_pub=myfile.read()
 ssh_key_pub=ssh_key_pub.strip()
- Update /home/fabric/work/fabric_config/ssh_config to reflect the correct keys and bastion user name
- 
		AuthorPosts
- You must be logged in to reply to this topic.
