第一步:生成密钥对

在本地生成密钥对

打开终端,输入指令,指定用rsa算法生成4096位长度的密钥,密钥对文件名为id_rsa_custom_name。

ssh-keygen -t rsa -b 4096 -f /Users/admin/.ssh/id_rsa_custom_name

或者在服务器后台侧边栏生成,保存好pem私钥文件,一般放到.ssh目录下。

  

第二步:绑定公钥

如果是后台生成的,自动绑定。如果是本地终端生成的,手动添加。添加方式:

先在终端分别输入:cd .ssh -> cat id_rsa_custom_name.pub(pub是公钥),复制后绑定。

第三步:修改服务器上的配置文件:允许ssh登录

1. 登录服务器,输入sudo vim /etc/ssh/sshd_config,查看这两行是否如下。如果注释了去掉#(输入i编辑,esc退出编辑,:wq保存并退出),保存后重启ssh服务:sudo systemctl restart sshd。

PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys

第四步:修改服务器上的公钥文件:添加公钥

1. 输入sudo vim ~/.ssh/authorized_keys,将上面复制的公钥添加进去,保存后重启ssh服务:sudo systemctl restart sshd。

第五步:修改本地ssh配置文件,/Users/admin/.ssh/config,将远程服务器信息和私钥路径添加进入。格式如下

Host 远程主机别名(自定义)
    HostName 远程主机ip地址或域名
    User 自定义用户名
    IdentityFile /Users/admin/.ssh/id_custom_name //没有pub

第六步:下载vscode的Remote - SSH插件。点击左下角双箭头,打开链接选项。

常见报错:

1. 远程服务器ssh配置文件有语法错误,输入sudo sshd -t查看。如果有语法错误,客户端连接时会被直接拒绝。

sudo systemctl restart sshd
Job for sshd.service failed because the control process exited with error code.

2. 其他错误基本是公钥没有绑定到后台、没有添加到authorized_keys的原因。

Could not establish connection to "hostname": Permission denied (publickey,gssapi-keyex,gssapi-with-mic).
Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐