1.服务器生成秘钥对
cd ~
ssh-keygen -t ed25519
这里我给秘钥设置了密码(passphrase)
2. 服务器安装公钥
cd .ssh
cat id_rsa.pub >> authorized_keys
然后修改访问权限:
[root@host .ssh]$ chmod 600 authorized_keys
[root@host .ssh]$ chmod 700 ~/.ssh
ssh对公钥的访问权限有严格要求,如不设置上面两行则会报错:
Server refused our key
3.将私钥拷贝到win10用户目录
这里将密钥id_rsa放在D盘则报错:(改了秘钥文件的权限还是没用)
改成C:\Users\Admin\.ssh里的目录就可以了
4. 验证ssh秘钥登录
cmd验证:
ssh -i C:\Users\admin\.ssh\id_ras_with_passphrase\id_rsa -p 3333 king@119.31.31.31
输入密码(passphrase)
VSCode通过ssh秘钥连接服务器:
修改VSCode配置文件C:\Users\admin\.ssh\config
Host 119.31.31.31
HostName 119.31.31.31
Port 3333
User king
IdentityFile C:\Users\admin\.ssh\id_ras_with_passphrase\id_rsa
之后连接输入密码(passphrase)就行了
5.服务器禁用ssh密码登录
注意:必须保证秘钥登录开启时才走一步(私钥不要弄丢了)
sudo vim /etc/ssh/sshd_config
PasswordAuthentication yes改成PasswordAuthentication no
然后重启sshd服务:
service sshd restart
值得一提的是:centos7.4后不需要添加以下两项,因为ssh默认开启密钥登录,ubuntu1604好像也不用
RSAAuthentication yes
PubkeyAuthentication yes