1. 在本地生成公钥,私钥
ssh-keygen -t rsa -b 4096
上面命令在用户根目录的.ssh文件夹下生成id_rsa和 id_rsa.pub 两个文件,id_rsa为私钥文件,id_rsa.pub为公钥文件
2. 拷贝公钥内容到远程服务器的authorized_keys
登陆服务器,打开.ssh文件夹,创建authorized_keys文件,修改文件权限为600,用vim将本地公钥内容拷贝到authorized_keys
cd ~/.ssh
touch authorized_keys
chmod 600 authorized_keys
vim authorized_keys # 这步把id_rsa.pub的内容拷贝进去,保存退出
3. 修改vscode配置文件,指定私钥位置
打开上图config文件,添加IdentityFile字段:
Host Server
HostName 目标机ip
User liaobaoxin
IdentityFile "/Users/baoxin/.ssh/id_rsa" #私钥地址
之后按照之前的流程就可以免密远程登陆了
4.跳板机免密登陆
按照步骤2同时在跳板机和目标机器的.ssh文件夹内创建authorized_keys文件,将本地公钥内容复制进去,文件权限改为600,修改vscode配置文件,跳板机和目标机器都加上IdentityFile [本地私钥地址]
:
Host JumpMachine
#跳板机ip
HostName 跳板机ip
#登入的用户名,可以不是root
User liaobaoxin
#上文提到的sshd服务端口
Port 22
IdentityFile "/Users/baoxin/.ssh/id_rsa"
#目标机名称,可以随便取
Host TargetMachine
#目标机ip
HostName 目标机ip
#登入的用户名,可以不是root
User liaobaoxin
IdentityFile "/Users/baoxin/.ssh/id_rsa"
#特别注意这里不需要设置端口了
#起跳转作用的代码,可以直接复制,注意JumpMachine需要与前面跳板机名称相同
ProxyCommand ssh -W %h:%p JumpMachine
远程登陆目标机器就不用输入密码了