使用ssh免密登录服务器
创始人
2025-01-16 22:32:30
0

最近写一些shell脚本的时候,需要读取远程服务器的目录下的内容,不能在脚本中直接使用密码,所以就想到了使用免密的方式进行读取。

一、虚拟机环境

下面是我安装的虚拟机网络配置

虚拟机编号

IP地址

子网掩码

账号

100

192.168.164.100

255.255.255.0

dev

101

192.168.164.101

255.255.255.0

dev

这里我们准备了两台虚拟机,账号都是使用的dev,需要保证两台服务器的网络互通

二、配置免登录

我们的目标是在101服务器上能够免登录到100服务器;所有的操作都是在101服务器上完成的。

1、生成密钥

ssh-keygen命令用于生成密钥;

可以使用man ssh-keygen获取命令的帮助信息

可以看到密钥算法支持dsa | ecdsa | ed25519 | rsa | rsa1,可以使用-t进行指定,默认使用的是rsa算法

可以使用-f指定密钥生成的文件,如果没有路径,则会生成到当前路径(不建议指定,默认会在用户目录下的.ssh目录下生成)

下面我们以dsa的方式生成密钥

ssh-keygen -t dsa

后面提示输入密钥的文件名称默认是(默认会在用户目录下的.ssh目录下生成id_dsa文件),直接回车即可

再后面提示输入口令,回车即可,否则在免密登录时需要输入口令。

最后可以看到用户目录下的.ssh目录下生成了两个文件:

id_dsa是生成的私钥

id_dsa.pub是生成的公钥

2、上传公钥到目标服务器

ssh-copy-id命令用于公钥的上传

可以使用man ssh-copy-id获取命令的帮助信息

 -p 用于指定远程服务器的端口(默认是22,如果远程服务器ssh的端口不是22时需要进行指定)

ssh-copy-id dev@192.168.164.100

命令执行后执行如下:

根据提示信息连接192.168.164.100服务器,并输入dev账号的密码后,会将192.168.164.101服务器刚刚生成的公钥复制到192.168.164.100服务器。

我们使用ssh连接到192.168.164.100服务器:

ssh dev@192.168.164.100

就可以看出免密是否设置成功,如果未设置成功,可以按照下面的步骤进行调试。

三、如何调试

将目标服务器(192.168.164.100)的sshd服务停掉,使用调试模式启动sshd服务

/usr/sbin/sshd -d

在客户端服务器(192.168.164.100)使用ssh连接

ssh -vvv dev@192.168.164.100

需要注意的是调试完成后启动sshd服务

注意:

# 启动sshd

systemctl start sshd.service

# 停止sshd

systemctl stop sshd.service

# 重启sshd

systemctl restart sshd.service

四、免登录失败

1、签名算法不支持

使用sshd调试模式,可以看到sshd服务的日志信息:

debug1: Server will not fork when running in debugging mode. debug1: rexec start in 5 out 5 newsock 5 pipe -1 sock 8 debug1: sshd version OpenSSH_9.6, OpenSSL 3.2.1 30 Jan 2024 debug1: private host key #0: ssh-rsa SHA256:dIWyWXw5fGeUfV3rAceE36LCtCTsf9JeKo6jSQqOyTc debug1: private host key #1: ecdsa-sha2-nistp256 SHA256:7G/ksKt/J5bF0TGsLq34p8il6RNoXnRM87IAQtf3hXA debug1: private host key #2: ssh-ed25519 SHA256:c7vI1pqCEvUyzpIYsctDWYRXbcPnpo/+YYe9ro/kv7A debug1: inetd sockets after dupping: 3, 3 Connection from 192.168.164.101 port 55234 on 192.168.164.100 port 22 debug1: Local version string SSH-2.0-OpenSSH_9.6 debug1: Remote protocol version 2.0, remote software version OpenSSH_7.4 debug1: compat_banner: match: OpenSSH_7.4 pat OpenSSH_7.4* compat 0x04000006 debug1: permanently_set_uid: 74/74 [preauth] debug1: list_hostkey_types: rsa-sha2-512,rsa-sha2-256,ecdsa-sha2-nistp256,ssh-ed25519 [preauth] debug1: SSH2_MSG_KEXINIT sent [preauth] debug1: SSH2_MSG_KEXINIT received [preauth] debug1: kex: algorithm: curve25519-sha256 [preauth] debug1: kex: host key algorithm: ecdsa-sha2-nistp256 [preauth] debug1: kex: client->server cipher: chacha20-poly1305@openssh.com MAC:  compression: none [preauth] debug1: kex: server->client cipher: chacha20-poly1305@openssh.com MAC:  compression: none [preauth] debug1: expecting SSH2_MSG_KEX_ECDH_INIT [preauth] debug1: SSH2_MSG_KEX_ECDH_INIT received [preauth] debug1: rekey out after 134217728 blocks [preauth] debug1: SSH2_MSG_NEWKEYS sent [preauth] debug1: Sending SSH2_MSG_EXT_INFO [preauth] debug1: expecting SSH2_MSG_NEWKEYS [preauth] debug1: SSH2_MSG_NEWKEYS received [preauth] debug1: rekey in after 134217728 blocks [preauth] debug1: KEX done [preauth] debug1: userauth-request for user dev service ssh-connection method none [preauth] debug1: attempt 0 failures 0 [preauth] debug1: userauth-request for user dev service ssh-connection method publickey [preauth] debug1: attempt 1 failures 0 [preauth] userauth_pubkey: signature algorithm ssh-dss not in PubkeyAcceptedAlgorithms [preauth] debug1: userauth-request for user dev service ssh-connection method keyboard-interactive [preauth] debug1: attempt 2 failures 1 [preauth] debug1: keyboard-interactive devs  [preauth] debug1: auth2_challenge: user=dev devs= [preauth] debug1: kbdint_alloc: devices '' [preauth] 

从日志中可以看到签名算法不支持,可以在/etc/ssh/sshd_config中新增对ssh-dss签名算法的支持。

HostKeyAlgorithms +ssh-dss PubkeyAcceptedAlgorithms +ssh-dss 

相关内容

热门资讯

两分钟辅助!阿拉游戏中心辅助工... 两分钟辅助!阿拉游戏中心辅助工具苹果版,总是是有辅助技巧(真实有挂)1、完成阿拉游戏中心辅助工具苹果...
第6分钟辅助!来趣广西友玩脚本... 第6分钟辅助!来趣广西友玩脚本辅助,一直是真的有辅助方法(有挂方法);1、许多玩家不知道来趣广西友玩...
第七分钟辅助!如何下载安装胡乐... 第七分钟辅助!如何下载安装胡乐辅助脚本,真是是有辅助神器(有挂规律)如何下载安装胡乐辅助脚本辅助器是...
第九分钟辅助!新导游正版辅助,... 第九分钟辅助!新导游正版辅助,原来真的是有辅助攻略(有挂规律)一、新导游正版辅助可以开透视的定义与意...
第一分钟辅助!微信开心泉州辅助... 第一分钟辅助!微信开心泉州辅助器,真是是有辅助脚本(有挂透视)1、完成微信开心泉州辅助器辅助器v3....
第7分钟辅助!来几局辅助器,好... 第7分钟辅助!来几局辅助器,好像是真的有辅助技巧(有挂规律)来几局辅助器辅助器是一种具有地方特色的麻...
第四分钟辅助!人海大厅反杀,原... 第四分钟辅助!人海大厅反杀,原来真的是有辅助攻略(发现有挂)1、起透看视 人海大厅反杀辅助软件价格2...
三分钟辅助!湛江吴川0759作... 三分钟辅助!湛江吴川0759作弊,原来有辅助插件(有挂方针)湛江吴川0759作弊能透视中分为三种模型...
第九分钟辅助!威信茶馆透视辅助... 第九分钟辅助!威信茶馆透视辅助工具,确实真的是有辅助软件(有挂技巧)1、金币登录送、破产送、升级送、...
第九分钟辅助!决战手游辅助,真... 第九分钟辅助!决战手游辅助,真是是有辅助工具(有挂技巧)1、游戏颠覆性的策略玩法,独创攻略技巧玩法,...