ssh登录方法

服务端配置

配置文件/etc/ssh/sshd_config

PermitRootLogin yes  #允许root用户登录
PasswordAuthentication no #允许密码登录
RSAAuthentication yes #启用rsa认证
PubkeyAuthentication yes #启用公钥认证

公钥文件~/.ssh/authorized_keys 每一行记录一个公钥,持有相应私钥的用户可登录 把客户端生成的.pub公钥文件,复制里面的内容到此文件即可 注意删除末尾邮箱,如果生成的.pub文件最末尾带有邮箱

# 为 .ssh 目录指定权限
chmod 700 ~/.ssh
# 为 authorized_keys 指定权限
chmod 600 authorized_keys
# 清除root密码
passwd -d root
systemctl restart sshd

客户端配置

使用命令生成密钥对 ssh-keygen -t rsa -f "文件名"

参数 解释
-b 采用长度1024bit的密钥对,b=bits,最长4096,不过没啥必要
-t rsa 采用rsa加密方式,t=type
-f 生成文件名,f=output_keyfiles
-C 备注,C=comment

配置文件~/.ssh/config

Host 连接A名称
HostName 机器Aip
User 用户名
IdentityFile ~/.ssh/私钥A_rsa文件

Host 连接B名称
HostName 机器Bip
User 用户名
IdentityFile ~/.ssh/私钥B_rsa文件

用户可以配置多个ssh 公钥/密钥 对

当服务器配置发生变化时,需要删除~/.ssh/known_hosts文件

连接认证

#有config时
ssh username@ip

#无config文件时,手动指定公钥
ssh username@ip -p 端口号(默认22) -i 公钥文件

ssh自动断开解决方法

SSH连接总是隔一段时间没有输入时就断开,解决办法有两个,一个是修改服务端配置,另一个是修改客户端配置

服务端修改配置/etc/ssh/sshd_config如下,再systemctl restart sshd

ClientAliveInterval 60     #服务端主动向客户端请求响应的间隔
ClientAliveCountMax 10 #服务器发出请求后客户端没有响应的次数达到一定值就自动断开

客户端修改如下配置~/.ssh/config

TCPKeepAlive=yes
ServerAliveInterval 60 #客户端主动向服务端请求响应的间隔
ServerAliveCountMax 999 #客户端发出请求后服务器没有响应的次数达到一定值就自动断开