远程服务器连接(密钥验证,跳板机)

服务器远程连接

天下大事 必作于细

rsa密钥配置

本地设备

利用git生成一对rsa公私密钥 keygen
windows的话,默认生成目录在 C:\Users\用户名.ssh
id_rsa为私钥文件
id_rsa.pub为公钥文件
私钥文件为你的登录的身份证,登录时选择这个文件即可,具体见下文。
公钥文件需要放到服务器authorized_keys当中

远程服务器

  1. 进入相应用户的.ssh文件夹, cd ~/.ssh即可
    里面应该有authorized_keys、id_rsa、id_rsa.pub、know_hosts等四个文件
    我们只需要关心authorized_keys这个文件即可。
  2. 打开authorized_keys文件,把刚刚本地生成的公钥文件的内容贴进来即可。
  3. 确保服务器上允许RSA密钥登录,这里需要root权限
sudo vim /etc/ssh/sshd_config
//查看文件中的这两项是否都是yes,第一项是允许RSA密钥登录,第二项是允许公钥认证
RSAAuthentication yes
PubkeyAuthentication yes

这样,密钥配置就完成了。

当然,有一个问题,就是你的服务器下面并不存在authorized_keys这个文件,甚至连.ssh文件夹都没有
那么,你自己建.ssh文件夹和authorized_keys文件然后再做一样操作即可,不过需要注意,文件夹和文件的权限是有要求的:

chmod 700 .ssh
chmod 644 authorized_keys

下面,根据平台不同分成mobaxterm和vscode对本地设置私钥以及跳板机进行说明

mobaxterm

远程连接

图1

跳板机

为什么需要跳板机,这是为了实现从外网网址跳到内网服务器的需求。
图2

vscode

远程连接

图3

Host xxxxx
    HostName xx.xx.xx.xx
    User xxx
    Port xx
    IdentityFile 私钥路径

Host为服务器名称,可以随便起
HostName是服务器ip地址
User 用户名
Port 端口号
IdentityFile 指明私钥文件路径

跳板机

为什么需要跳板机,这是为了实现从外网网址跳到内网服务器的需求。
图3

Host public_net
    HostName xx.xx.xx.xx
    User xxx
    Port xx
    IdentityFile 私钥路径

Host inter_net
    HostName xx.xx.xx.xx
    User xxx
    Port xx
    IdentityFile 私钥路径
    ProxyCommand ssh -W %h:%p public_net

ProxyCommand 能够指明通过另一个ip做跳板,其中ssh需要绝对运行路径,如C:\Windows\System32\OpenSSH\ssh.exe

 1 total views,  1 views today

页面下部广告