配置SSH免密登录服务器(支持跳板机)

假设你有两台Linux服务器A40和A800,但是它们只有内网地址,需要通过跳板机jump来登录. 本文介绍如何在Windows系统使用SSH来免密登录内网服务器.

第1步:生成ssh密钥

Windows10以上的系统通常会自带OpenSSH. 打开Powershell或cmd,输入

其中-t指定密钥类型为rsa-C为注释,并非必须. 命令执行后连按三个回车,C:\Users\your_username\.ssh\目录下会生成id_rsaid_rsa.pub两个文件,前者为私钥,后者为公钥.

第2步:复制公钥到服务器

用账号密码登录跳板机jump,登录命令为

-p后面的参数是服务器的ssh端口号,默认为22(可省略),也可能是事先配置好的端口号.

然后将公钥id_rsa.pub传输到跳板机jump的~/.ssh/目录(推荐使用FileZilla),执行mv id_rsa.pub authorized_keys. 注意,新用户的用户目录下可能没有.ssh目录,这时候只需执行ssh localhost命令,登录后再exit即可.

接下来如法炮制,将跳板机上的公钥复制给A40和A800服务器,由于它们共享内网,可使用下面的命令传输(保证内网服务器的~/.ssh目录存在):

执行scp命令后会让你输入内网服务器的密码,然后在跳板机用账号密码登录内网服务器,将公钥改名authorized_keys即可.

第3步:配置本地ssh文件

在自己的Windows主机编辑文件C:\Users\your_username\.ssh\config,添加下面的信息

保存并退出,打开终端,输入命令ssh a800_username@a800

image-20231121014006994

出现welcome信息和新的prompt即为成功~

image-20231121014230826