step1:在本机和跳板机上生成私钥和公钥
ssh-keygen -t rsa -C “your_email@xxx.com”
生成的两个默认文件中,id_rsa.pub是公钥,id_rsa是私钥
step2:在vscode安装Remote-SSH插件
step3:将本机生成的私钥和公钥上传跳板机上
把本机生成的rsa_id.pub公钥上传至跳板机上,并追加(cat命令) 写入到~/.ssh目录下的authorized_keys文件中
cat id_rsa.pub >> authorized_keys
如果~/.ssh目录下没有authorized_keys文件,则需要我们手动创建一个
touch authorized_keys
step4:将跳板机上生成的私钥和公钥上传服务器 上
把跳板机生成的rsa_id.pub公钥上传至服务器上,并追加(cat命令) 写入到~/.ssh目录下的authorized_keys文件中
cat id_rsa.pub >> authorized_keys
step5:在本机上配置vscode文件
打开下图中的配置文件,并输入跳板机和服务器的配置信息
Host JumpMachine # 跳板机名称
HostName xx # 跳板机IP
Port xx # 跳板机端口号
User xx # 跳板机用户名
IdentityFile "C:\Users\xxx\.ssh\id_rsa" # 本机公钥文件的路径
Host TargetMachine # 服务器名称
HostName xx # 服务器IP
Port xx # 服务器端口号
User xx # 服务器用户名
ProxyCommand ssh JumpMachine -W %h:%p
step5:visual studio code 连接服务器不需要密码的操作
打开SSH配置文件 sudo vim /etc/ssh/sshd_config,确保以下两项的值正确
RSAAuthentication yes
PubkeyAuthentication yes
重启SSH便可以
sudo service sshd restart
配置完后仍然连接不成功可能是文件权限问题
chmod 700 ~/.ssh 修改~/.ssh文件夹权限 #.ssh目录的权限必须是700
chmod 644 authorized_keys # authorized_keys的权限必须是600或者644
chmod 644 id_rsa.pub
chmod 644 id_rsa