0. 开启服务器远程密码登录
# 在服务器root用户下
vim /etc/ssh/sshd_config
修改这两项并保存:
PermitRootLogin yes
PasswordAuthentication yes
重启ssh服务:
service sshd restart
# 或者
/etc/initd.d/sshd restart
1. 使用命令
ssh root@10.152.66.168
提示输入秘密,输入服务器连接密码,连接成功!
如果忘记密码,可以在:云服务器ECS?实例?更多?密码/密钥里修改密码。
2. 使用快捷命令
# 进入.ssh目录
cd .ssh
# 创建config配置文件
vim config
# 配置信息
Host fxx
HostName 10.152.66.168
User root
现在就可以使用ssh fxx
快捷命令登录了。
提示输入秘密,输入服务器连接密码,连接成功!
3. 使用密钥连接服务器(推荐)
通过使用证书登录可以不用输入密码,方便快捷。
-
生成密钥文件
ssh-keygen -t rsa -b 2048 -v -f dataAutoProcess
注: 其连接方式与Git的连接方式基本一致,如果你之前Git生成过用于认证的公钥、密钥,切使用默认路径~/.ssh/id_rsa,注意切换切换路径、名字,以免覆盖。
-f 指定文件名,未指定路径的情况下默认是当前路径生成。如上为在.ssh目录下生成密钥名为dataAutoProcess,公钥名为dataAutoProcess.pub。
剩下的一路回车就OK。 -
进入到你生成公钥的目录,将公钥推送到远程服务器
ssh-copy-id -i dataAutoProcess.pub root@10.152.66.168
将dataAutoProcess.pub换成你的公钥名字,root@10.152.66.168分别换成你的服务器用户名和地址,然后输入密码即可。
-
测试
# 将你的密钥修改名字,当然不改也行 mv dataAutoProcess fxx.pem # 使用证书免密登录 ssh -i fxx.pem root@10.152.66.168
或者:
配置config,使用快捷命令登录?推荐使用# 修改之前配置的.ssh/config文件,添加生成的证书,如下: Host fxx HostName 10.152.66.168 User root IdentityFile /Users/fxx/.ssh/fxx.pem #使用快捷命令一键登录 ssh fxx 连接成功!
-
取消密码登录
当你测试你的密钥可以登录后,一定要确定可以连接,可以取消密码登录方式。
vim /etc/ssh/sshd_config
进入vim编辑器后按
/
进入查找模式,然后粘贴PasswordAuthentication,回车后定位到此处,按i进入insert 模式,放开注释,并修改为no。# 修改前: # PasswordAuthentication yes # 修改后: PasswordAuthentication no # 重启ssh: sudo service ssh restart
4. 保持连接,防止长时间未操作而断开
通过发送“心跳”信号来维持持续连接,有如下4种方式,任意一种都行
-
服务端修改配置
在/etc/ssh/sshd_config文件最后增加两个参数后重启ssh# Server 每隔 60 秒发送一次请求给 Client,然后 Client响应,从而保持连接 ClientAliveInterval 60 # Server发出请求后,客户端没有响应得次数达到10,就自动断开连接 ClientAliveCountMax 10
SSH Server 每 60 秒就会自动发送一个信号给 Client,而等待 Client 回应,如果客户端没有回应,会记录下来直到记录数超过 ClientAliveCountMax 的值时,才会断开连接。
-
客户端修改配置
在/etc/ssh/ssh_config文件最后增加下面的参数TCPKeepAlive yes # Client每隔 60 秒发送一次请求给 Server,然后 Server响应,从而保持连接 ServerAliveInterval 60 # Client发出请求后,服务器端没有响应得次数达到3,就自动断开连接 ServerAliveCountMax 3
-
客户端单独修改某一台连接
在~/ssh/config的配置中增加参数Host fxx HostName <your server ip> User root IdentityFile /Users/fxx/.ssh/id_rsa # 以下是需添加的配置 ServerAliveInterval 60 ServerAliveCountMax 3
-
直接用命令
ssh -o TCPKeepAlive=yes -o ServerAliveInterval=300 -o ServerAliveCountMax=3 fxx