概述
ssh服务
- ssh服务
- ssh客户端~/.ssh目录及相关权限
- 生成ssh密钥对
- 公钥和私钥的权限
- authorized_keys(授权文件)
- known_hosts(指纹记录核对文件)
- ssh配置文件(~/.ssh/config)
- ssh客户机配置示例
- ssh客户端主配置文件/etc/ssh/ssh.conf(默认ssh配置文件):
- 服务端/etc/ssh目录及相关文件
- 服务端/etc/ssh目录下默认的3对(或4对)非对称加密密钥
- 查看服务器的指纹
- 使用ssh-keyscan查看服务器指纹
- ssh秘钥登录失败:invalid format
- 解决办法:
- 服务器密钥变更(Host key verification failed.)
ssh服务
该文档适用于RHEL7
和RHEL8
系列Linux
参考: https://segmentfault.com/a/1190000021888536
ssh客户端~/.ssh目录及相关权限
~/.ssh
目录权限700
# 查看~/.ssh目录的权限
stat -c%a .ssh
# 设置~/.ssh目录权限
chmod 700 ~/.ssh
生成ssh密钥对
https://blog.csdn.net/omaidb/article/details/120028143
公钥和私钥的权限
~/.ssh
目录下的密钥文件权限是600
id_rsa
(私钥)
id_rsa.pub
(公钥)
# 查看私钥和公钥文件权限
stat -c%a id_rsa id_rsa.pub
# 设置私钥和公钥文件权限
chmod 600 id_rsa id_rsa.pub
authorized_keys(授权文件)
将ssh-client
的公钥内容
保存到服务器上的authorized_keys(授权文件)
中,客户端可实现免密登录
.
服务器上的authorized_keys(授权文件)
权限必须是600
或者400
# 将指定的客户端添加为免密登陆
echo "ssh-client的公钥信息" >> /root/.ssh/authorized_keys
将客户端的id_rsa
密钥文件,拷贝到另一台机器
的~/.ssh/
目录下,另一台机器
即可免密登录
该服务器.
known_hosts(指纹记录核对文件)
known_hosts
(StrictHostKey记录核对文件) —会将访问过的计算机的公钥的StrictHostKey
保存在该文件中,当下次访问相同计算机时,OpenSSH会核对对应机器的StrictHostKey
。如果StrictHostKey
不同,OpenSSH会发出警告
.
ssh配置文件(~/.ssh/config)
选项参考: https://deepzz.com/post/how-to-setup-ssh-config.html
https://mengxiaoxing.top/2021/10/04/ssh配置文件详解/
ssh config 配置参数freebsd官方文档
ssh config 配置 常用参数-中文doc
ssh config 常用配置参数
ssh配置文件详解
https://plantegg.github.io/2019/06/02/史上最全_SSH_暗黑技巧详解–收藏保平安/
~/.ssh/config
是ssh客户端的用户级
配置文件,优先级
最高
# 顶格居左写,表示全局ssh客户端全局配置
# 写在Host配置下,与Host参数对齐表示只对该host生效
# 常用的参数
## 忽略第一次强制校验主机密钥
### ask 提示用户
### yes 会拒绝
### no 不检查
StrictHostKeyChecking no
# 定义known_hosts文件为空--不检查指纹
UserKnownHostsFile /dev/null
## GSSAPI认证能优化ssh连接速度
GSSAPIAuthentication no
## 不检查IP
CheckHostIP no
## 启用压缩
Compression yes
## 指定变量
### 解决locale报错问题
SendEnv LC_ALL zh_CN.UTF-8
SendEnv LANG zh_CN.UTF8
# 配置1天(60秒*1440次)内ssh客户端不超时
## 服务器存活最大数值超过次1440次服务器无响应客户端会断掉
ServerAliveCountMax 1440
## 服务器存活时间间隔,60秒发送一次KeepAlive
ServerAliveInterval 60
## 发送TCP保活报文
TCPKeepAlive yes
# 重用相同的连接
ControlMaster auto
## 连接状态文件
ControlPath ~/.ssh/ssh_mux_%h_%p_%r
## 72小时内保持连接(只需要第一次输入密码)
ControlPersist 72h
ssh客户机配置示例
Host node1
user dns
Hostname 114.114.114.114
Port 2222
# 指定私钥
identityfile ~/.ssh/id_rsa_dns
# 指定公钥
CertificateFile ~/.ssh/user-cert.pub
# 配置1天(60秒*1440次)内ssh客户端不超时
## 服务器存活最大数值超过次1440次服务器无响应客户端会断掉
ServerAliveCountMax 1440
## 服务器存活时间间隔,60秒发送一次KeepAlive
ServerAliveInterval 60
## 发送TCP保活报文
TCPKeepAlive yes
ssh客户端主配置文件/etc/ssh/ssh.conf(默认ssh配置文件):
一般不直接配置这个文件, 更多用来参考文件中的配置参数
/etc/ssh/ssh.conf
文件配置方法与~/.ssh/config
配置方法完全一致,一般只会配置~/.ssh/config
文件
服务端/etc/ssh目录及相关文件
服务端/etc/ssh目录下默认的3对(或4对)非对称加密密钥
查看服务器的指纹
# 从dsa私钥查看指纹
## 也可以查看其他算法的私钥指纹,根据实际情况而定
## 第一次登陆时会提示指纹,这个指纹跟服务器上查看到的指纹必须一致,如果不一致,那就是ssh被劫持了
[rhel8 root /etc/ssh]# ssh-keygen -lf /etc/ssh/ssh_host_ecdsa_key
256 SHA256:EOwjru1RODrMEAUOcIPi0SdkZ85I8Un+Q35Hp+Rz+X8 ssh_host_ecdsa_key.pub (ECDSA)
# 查看dsa私钥md5格式指纹
[rhel8 root /etc/ssh]# ssh-keygen -lf /etc/ssh/ssh_host_ecdsa_key -E md5
256 MD5:ad:10:0e:6f:98:96:55:87:cf:f2:bf:13:46:e7:2d:a7 ssh_host_ecdsa_key.pub (ECDSA)
# 查看dsa私钥sha1格式指纹
[rhel8 root /etc/ssh]# ssh-keygen -lf /etc/ssh/ssh_host_ecdsa_key -E sha1
256 SHA1:lQFmokJbzQziD9NngktJWpzz2Fk ssh_host_ecdsa_key.pub (ECDSA)
# 查看dsa私钥sha256格式指纹
[rhel8 root /etc/ssh]# ssh-keygen -lf /etc/ssh/ssh_host_ecdsa_key -E sha256
256 SHA256:EOwjru1RODrMEAUOcIPi0SdkZ85I8Un+Q35Hp+Rz+X8 ssh_host_ecdsa_key.pub (ECDSA)
# 查看dsa私钥sha512格式指纹
[rhel8 root /etc/ssh]# ssh-keygen -lf /etc/ssh/ssh_host_ecdsa_key -E sha512
256 SHA512:ingRxCRQqQNYEODpBvqhJ/UhFxbPmRR8uCLjwbYWx1a9CLLr1ddVcmsC+UfrzOT//UpxDEY2Bagq6ZZB949Rcg ssh_host_ecdsa_key.pub (ECDSA)
使用ssh-keyscan查看服务器指纹
https://www.linuxcool.com/ssh-keyscan
ssh秘钥登录失败:invalid format
参考: https://blog.csdn.net/qq_27727147/article/details/120304936
原因分析: 一般是公钥末尾缺少一个换行符
解决办法:
用记事本打开公钥,最后一行敲个回车即可!
如果提示的是私钥格式错误,同样最后一行加回车,如果是跨平台复制的密钥对,还要注意LF
和CRLF
服务器密钥变更(Host key verification failed.)
参考: https://blog.csdn.net/wd2014610/article/details/85639741
# 注意,必须是IP地址
ssh-keygen -R ${必须是ip地址}
# 除了使用上面的命令,你也可以手工修改`known_hosts`文件,将公钥指纹删除。
最后
以上就是漂亮酸奶为你收集整理的ssh服务sshd服务的全部内容,希望文章能够帮你解决ssh服务sshd服务所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复