ssh的那些事

Posted    on 2017, Feb5, Sunday 02:05:49
Modified on 2017, Feb16, Thursday 18:21:00

Tags: linux ssh

一. 使用ssh

施工中

二. 轻松使用

1. 免密码登陆vps

对于经常连接vps的人,每次都需要输入密码是非常无趣的事,可以通过生成生成公钥私钥,免密码使用ssh连接vps
假设A为本地主机,B为被控机器,欲连接的用户为user ip:1.1.1.1

A的命令

ssh-keygen -t rsa #连续三次回车,在本地生成公钥和私钥,不设置密码
ssh user@1.1.1.1 "mkdir .ssh;chmod 0700 .ssh" #创建.ssh文件夹并设置权限为700(本用户可读可写可执行,需要输入被控机器密码)
scp ~/.ssh/id_rsa.pub user@1.1.1.1:.ssh/id_rsa.pub #复制公钥到被控机器(需要输入被控机器密码)

B的命令

touch ~/.ssh/authorized_keys #如果存在该文件就不执行
chmod 600 ~/.ssh/authorized_keys #设置该文件权限为600(本用户可读可写)
cat  ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys #将公钥追加在authorized_keys尾部

最后

A机器可直接用ssh连接B机器不用输入密码,若是需要制定别的私钥文件,用参数-i即可

2. 避免ssh连接因超时闲置断开

在使用ssh时,常常因为长时间不操作而被服务器踢出,解决这种问题一般有两种方法

方法1

只需在客户端电脑上编辑/etc/ssh/ssh_config,修改ServerAliveInterval的值为60
ServerAliveInterval不存在,只需执行

echo "ServerAliveInterval 60" >> /etc/ssh/ssh_config   

之后本机连接任何服务器都会保持连接
 (需要root权限)

方法2

只需在服务器上编辑/etc/ssh/ssh_config,修改ClientAliveInterval的值为60
ClientAliveInterval不存在,只需执行

echo "ClientAliveInterval 60" >> /etc/ssh/ssh_config   

(需要root权限)
重启服务器后该设置会生效
 但是每个连接到此服务器的客户端都会受影响,启用后服务器安全性可能会下降(比如忘记登出)