SSH

部分参数

-oBatchMode=yes的作用是设置[[../Linux/Linux命令/ssh命令|SSH命令]]以批处理模式运行,它会禁用交互式操作,例如当需要输入密码时,SSH命令会自动退出而不会等待用户的输入。

-oStrictHostKeyChecking=no的作用是关闭SSH命令中对主机公钥的验证,这意味着当首次连接到一个新主机时,SSH命令会自动接受主机公钥而不会询问用户是否接受该公钥。这在批处理或自动化脚本中很有用,因为它避免了需要人工确认每个新主机的公钥。但是在某些情况下,关闭主机公钥验证可能会导致安全问题,例如中间人攻击。 -o ConnectTimeout=<seconds>:指定连接的超时时间,单位是秒。 -o User=<username>:指定连接使用的用户名。等于“-U” -o Port=<port>:指定连接使用的端口号,默认是22。等于“-P” -o IdentityFile=<filename>:指定使用的私钥文件路径。等于 "-i" -o LogLevel=<level>:指定输出日志的详细程度。常见的级别包括 QUIET、FATAL、ERROR、INFO、VERBOSE 和 DEBUG。 -o ForwardAgent=yes:允许通过 SSH 连接链路进行身份验证代理转发。 -o TCPKeepAlive=yes:启用 TCP keepalive 以保持 SSH 连接的稳定性。 -o Compression=yes:启用压缩以减少传输的数据量,提高传输速度。


.ssh目录下有多个密钥,对应不同主机,如何让不同主机使用不同密钥

在.ssh目录下创建config文件,按下面的例子填写即可

	Host 1.1.1.1
		IdentityFile ~/.ssh/1_id_rsa
	Host ser.domain.com
		IdentityFile ~/.ssh/ser_id_rsa

手动指定私钥

ssh -i /path/id_rsa_test-04 user@test-04

# 首次连接时不检查公钥,即不弹出Are you sure you want to continue connecting (yes/no/[fingerprint])?
ssh -i /path/id_rsa_test-04 -oStrictHostKeyChecking=no user@test-04

发送公钥到目标服务器

通过ssh-copy-id命令可以直接将指定密钥的公钥文件复制到对应服务器用户的.ssh/authorized_keys中,省去了手动复制的过程

使用rsa密钥登录失败

[[../Linux/Ubuntu/Ubuntu22.04使用rsa密钥登录失败|Ubuntu22.04使用rsa密钥登录失败]]


屏蔽尝试SSH登录服务器的IP

上面的脚本通过筛选linux系统secure日志中的“Invalid user root from 1.1.1.1 port 38866”信息来对登录系统未逐的IP进行过滤并统计次数,超过3次直接加到/etc/hosts.deny中阻止登录


安装google-authenticator 配置F2A双因子认证,增加CentOS登录安全

系统:CentOS7x64 1804

![](../../../media/Images/F2A-QRCode.png| 300)

修改/etc/pam.d/sshd文件,增加 如下配置

修改 /etc/ssh/sshd_config文件,

重启sshd服务


SSH远程执行命令


[[../Windows/SSH隧道]]


CVE-2024-6387

影响范围 8.5p1 <= OpenSSH < 9.8p1

AlmaLinux OS 9 升级openssh-8.7p1-38.el9_4.4.x86_64,该版本为官方提供的修复版本 说明文档arrow-up-right

最后更新于