SSH无需密码登录服务器
Mac 无密码 SSH 登录服务器,只需要简单三步,不再需要记住账号密码,快速进入服务器
测试H1
dfsdfsf
测试H2
dfsdfsf
测试H3
dfsdfsf
测试H4
dfsdfsf
测试H5
dfsdfsf
测试H6
dfsdfsf
第一步,生成密钥对
在当前用户下创建.ssh
目录
mkdir ~/.ssh
使用命令ssh-keygen
生成密钥对,会在~/.ssh
目录下生成公/私钥
id_rsa //私钥
id_rsa.pub //公钥
第二步,上传公钥
使用命令ssh-copy-id user@hostname
如:ssh-copy-id [email protected]
输入密码,操作成功
查看服务器~/.ssh/authorized_keys
,可以看到本地的公钥已经写入到authorized_keys
文件中
运行命令ssh user@hostname
就可以直接无密码 SSH 登录服务器
第三步,config 配置
在当前用户.ssh
目录下创建config
文件
touch ~/.ssh/config
通过vim
编辑config
,添加服务器配置信息
Host iChochy //服务器别名
Hostname 192.168.1.55 //服务器地址
User admin //服务器用户
Identityfile ~/.ssh/id_rsa //服务器公钥对应的本地私钥
直接运行命令ssh iChochy
就可以直接无密码 SSH 登录服务器
SSH保持连接不断开
经常连接ssh长时间不操作就断开,实在忍无可忍,每次都想解决这个问题,但是就是懒得搞,这次必须得一刀解决。
解决方法一:服务器配置
1、 连接SSH
ssh [email protected]
2、编辑sshd_config
vim /etc/ssh/sshd_config
3、找到ClientAliveInterval,将前面的#去掉,
# 服务器每隔60秒会给客户端发送一次保活信息包给客户端,可以将这个值设置大一点
ClientAliveInterval 120
4、找到ClientAliveCountMax,将前面的#去掉,
# 服务器发出的请求如果客户端没有响应,则判断超时1次,这个参数是表示允许超时的次数。可以将这个值设置大一点。
ClientAliveCountMax 720
5、 执行
systemctl restart sshd
- 第一句意思是服务端每间隔120s会向客户端发送一个空数据包
- 第二句表示服务器最大会发送720次,120*720=24小时
- 24小时期间连接是不会断开的
这样的话就算不操作也不会断开了,根据自己的需要将值调整即可。
解决办法二:客户端配置
1、通过修改客户端设置,以保证连接所有服务器都使用此设置
vim ~/.ssh/config
2、添加下面3个,如果有就修改,否则新增,意思跟服务器配置的差不多,不再阐述。
Host *
TCPKeepAlive yes
# Client每隔 60 秒发送一次请求给 Server,然后 Server响应,从而保持连接
ServerAliveInterval 60
# Client发出请求后,服务器端没有响应得次数达到3,就自动断开连接,正常情况下,Server 不会不响应
ServerAliveCountMax 3
有的文章说只要配置ServerAliveInterval
这一个参数就可以了, 读者可以自行验证, ServerAliveInterval
我觉得60秒就好了,而且基本去连的机器都保持,所以配置了*
,如果有需要针对某个机器,可以自行配置为需要的serverHostName
。
解决办法三:连接SSH指定参数
连接时ServerAliveInterval的值设置大一点,这样就不会出现超时的现象了。
ssh [email protected] -o ServerAliveInterval=99999
总结
我更偏向于解决办法二,因为只要把客户端配置好不管连接哪台服务器都不用担忧。服务器的话就要每台都得配置。看大家的喜好和场景吧。