关于linux:SSH无需密码登录服务器且保持连接不断开的方法

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  admin@192.168.1.55

输出明码,操作胜利
查看服务器~/.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 root@192.168.0.1

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 root@192.168.0.1 -o ServerAliveInterval=99999

总结

我更偏差于解决办法二,因为只有把客户端配置好不论连贯哪台服务器都不必担心。服务器的话就要每台都得配置。看大家的爱好和场景吧。

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理