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

  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主机的登录方法

在 Windows 主机上实现免密远程连接服务器。这通常通过 SSH 密钥对来实现,以下是具体步骤:
  1. 生成 SSH 密钥对
在 Windows PowerShell 中执行以下命令来生成密钥对:

 ssh-keygen -t rsa -b 4096

  • 执行后会提示你设置密钥保存位置,默认是 C:\Users\你的用户名\.ssh\id_rsa
  • 可以选择是否设置密码(建议直接回车,不设置密码)
  • 这将生成两个文件:
  • id_rsa(私钥)
  • id_rsa.pub(公钥)
  1. 将公钥手动复制到服务器

  • 使用编辑器查看公钥 id_rsa.pub 内容并复制:
    • 登录到服务器,将公钥内容追加到 ~/.ssh/authorized_keys 文件:
    1. 配置 SSH 配置文件(可选但推荐)
    在 Windows 上创建或编辑 C:\Users\你的用户名\.ssh\config 文件:

     Host server_nickname HostName server_ip User username IdentityFile C:\Users\你的用户名\.ssh\id_rsa Port 22

    1. 测试连接
    如果配置了 config 文件:

     ssh server_nickname

    如果没有配置 config:

     ssh username@server_ip

    安全提示:
    1. 确保私钥文件 (id_rsa) 的权限设置正确,只有你自己可以访问
    1. 不要将私钥分享给任何人
    1. 建议在服务器上设置 sshd_config 禁用密码登录,只允许密钥登录:

       PasswordAuthentication no PubkeyAuthentication yes

    常见问题解决:
    1. 如果连接失败,检查服务器的 SSH 服务是否正常运行
    1. 确认服务器防火墙是否开放了 SSH 端口(默认 22)
    1. 检查 authorized_keys 文件的权限是否正确
    1. 查看服务器的 SSH 日志以获取详细错误信息
    这样设置完成后,你就可以直接通过 SSH 命令连接到服务器,而不需要每次都输入密码了。这不仅更方便,而且比密码登录更安全。

    点赞(0)

    留言列表 共有 0 条留言

    暂无留言

    微信公众账号

    微信扫一扫加关注

    发表
    留言
    返回
    顶部