ssh设置
ssh基本设置
防止空闲超时
某些 ssh 服务器会自动断开空闲连接,导致连接中断,尤其是某些 ecs 服务器,超时时间只有1分钟,非常不方便。需要设置一下防止空闲超时。
vi /etc/ssh/sshd_config
加入以下内容:
ClientAliveInterval 30
ClientAliveCountMax 3
ClientAliveInterval 设置为 30,表示每隔30秒发送一次心跳包,防止连接超时。 ClientAliveCountMax 设置为 3,表示如果3次心跳包都没有响应,则认为连接已断开。
重启 ssh 服务:
sudo systemctl restart ssh.service
密钥登录
上传本机的 .ssh/id_isa.pub 文件到服务器端:
scp ~/.ssh/id_rsa.pub sky@192.168.0.10:/home/sky
在服务器上运行:
mkdir -p .ssh
touch ~/.ssh/authorized_keys
cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
以后简单输入 “ssh server.ip” 即可自动登录。
指定特定端口登录
ssh默认采用22端口,对于需要进行端口映射导致不能访问22端口的情况,需要在ssh时通过 -p 参数指定具体的端口。
如下面的命令,有一台服务器的22端口是通过路由器的2122端口进行端口映射,则远程ssh连接的命令为:
ssh -p 2122 sky@dev.sky.net
对于服务器,可能需要使用特定的用户名登录,比如:
ssh -p 2122 root@dev.sky.net
快捷登陆
修改本机的 ~/.zshrc 文件:
vi ~/.zshrc
加入以下内容:
# ssh to servers
alias ssh-ecs1="ssh sky@ecs1.skyao.net"
alias ssh-ecs2="ssh sky@ecs2.skyao.net"
alias ssh-ecs3="ssh sky@ecs3.skyao.net"
载入:
source ~/.zshrc
以后就可以一个简单命令直接ssh到远程服务器了:
ssh-ecs1
ssh-ecs2
ssh-ecs3