## 使用腾讯免密证书登录服务器

  1. 在腾讯云后台打开SSH密钥,新建一个密钥信息,后台生成一个公钥,第一次生成时可以下载私钥文件ssh.pem.保存在本地路径为 /Users/yk/ssh.pem ,注意保存pem文件,文件只生成一次.

  2. 编辑远程服务器__CODE_STANDALONE_START__/root/.ssh/authorized_keys__CODE_STANDALONE_END__文件将腾讯云后台生成的公钥复制进去.

  3. 公钥代码示例:

ssh-rsa XXX skey-iybcvi2f
  1. 在终端软件中用以下的命令登录远程服务器,注意指定你自已的证书绝对路径.
#赋予私钥文件仅本人可读权限
chmod 400 /Users/yyw/ssh.pem
#在终端中开启登录
ssh -i '/Users/yyw/ssh.pem' root@xx.xx.xx.xx
  1. 在 vscode 中编辑/Users/yyw/.ssh/config文件写入以下内容

Host 49.233.117.226
    HostName 49.233.117.226
    IdentityFile ~/ssh.pem
    PreferredAuthentications publickey
    #ForwardAgent yes
    User root
  1. 远程连接完成

本机生成私钥,修改远程配置文件加入公钥进行登录的方法

在本地电脑上用ssh-keygen生成密钥对。

在macos 主机本地生成密钥对文件名是id_rsa_server_someone

在生成过程中要求输入ssh文件的密码,可以直接回车留空:

ssh-keygen -t rsa -f id_rsa_server_someone

生成两个文件,一个是私钥无扩展名,一个是公钥扩展名是 pub

把公钥文件上传到远程服务器,并把内容复制到__CODE_STANDALONE_START__/root/.ssh/authorized_keys__CODE_STANDALONE_END__文件中

以下的命令为追加内容

cat id_rsa_server_someone.pub >> authorized_keyscd /

最后,在vscode 的ssh连接配置文件中修改config中修改为:

Host 192.168.88.66  
HostName 192.168.88.66  
#文件路径为当前用户根目录/Users/yyw/id_rsa_server_someone
IdentityFile ~/id_rsa_server 
PreferredAuthentications publickey  
#ForwardAgent yes  
User root
Host 49.233.117.226
HostName 49.233.117.226
IdentityFile ~/id_rsa_server_someone
PreferredAuthentications publickey
#ForwardAgent yes
User root

出错的检查处理方法:

启用ssh链接方法

要求确认远程主机已经正确设置了SSH服务,并且允许使用SSH密钥来进行身份验证。通过编辑远程主机的SSH配置文件(一般在/etc/ssh/sshd_config路径下),可以启用SSH密钥身份验证,具体操作是将PubkeyAuthentication设置为yes。

修入配置文件后重启 ssh

sudo systemctl restart sshd​

如果出现提示远程服务器密码已变更(重要)

可以删除macos用户主目录.ssh下known_hosts文件


ForwardAgent yes的用途


"ForwardAgent yes" 意味着在SSH连接中启用代理转发功能。当这个选项被设置为"yes"时,SSH客户端会将本地计算机上的代理密钥传输到远程主机,从而允许用户在远程主机上使用本地计算机上的私钥进行认证。这样可以方便地在多个主机之间传递身份验证信息,而无需在每台主机上都存储私钥。

如果root用户下没有.ssh文件 没有用root用户登录过,执行下ssh操作,就能自动生成

ssh localhost

输入yes

输入密码

cd /root/.ssh/就进入了root下的.ssh目录

出现密码无法登录时

确认authorized_keys文件中的内容与mac下生成并上传的公钥pub文件内容相同

windows主机的登录方法

先贴总结:

  1. 本机安装ssh,check ssh是否安装成功: ssh 或者 ssh-V

  2. vscode安装remote development 插件

  3. 配置密钥

  • (1)在本地机器生成密钥对(公钥+私钥):ssh-keygen

  • (2)私钥放本机,公钥放远程(~/.ssh路径下)

  • (3)在远程机器用公钥生成authorized_keys:

    • 进入home目录下的.ssh文件夹:cd ~/.ssh

    • cat id_rsa.pub >> authorized_keys

  • (4)vscode config文件加入本机私钥路径

细节如下:

  1. 本地机器安装ssh(windows系统)

  • SSH全称Secure Sheel,是一个远程连接的协议,需要在本机上安装ssh才能够远程连接到server。

  • check ssh是否安装成功:

(1)在terminal中输入ssh ,出现如下信息表明安装成功

(2)或者输入ssh -V,出现已安装的ssh版本,代表安装成功

  1. vscode安装remote development 插件

  2. 配置密钥

(1)用【ssh-keygen】命令来生成密钥对:

  • id_rsa.pub是公钥,id_rsa是私钥。

  • 如果多平台都要使用ssh,则需要修改密钥文件名,避免冲突:

(2)公钥放server(远程主机)上,私钥放本机上。

  • 进入刚才密钥对保存的folder(C:\Users\10747/.ssh),把.pub后缀的公钥传输到server上(可以用scp命令)

  • 公钥放在server的**~/.ssh**文件夹中

(3)进入server 的~/.ssh 文件夹,使用【cat】命令,用公钥文件来生成 authorized_keys。

  • 生成完之后输入【ls】可看到当前路径多了一个authorized_keys文件。

(4)修改vscode的config file,加入 IdentityFile 和对应的本机私钥路径

① 打开.ssh/config文件

② 修改.ssh/config文件:加入IdentityFile的路径(也就是私钥在本机的所在位置)

这时候再用vscode登录server就不用输入密码了!


点赞(0)

留言列表 共有 0 条留言

暂无留言

微信公众账号

微信扫一扫加关注

发表
留言
返回
顶部