Linux - 使用 SSH 登录远程服务器
Windows 中远程 SSH 登录 VPS 进行管理可以用 PuTTY、BvSshClient 等应用,但 Linux 中就没必要用他们了。
Linux 可以通过 OpenSSH,可以通过它来登录 VPS。
Linux 终端登录 SSH
1 | ssh <userName>@<serverDomain or IP> -p <port> |
快速登录
SSH 本身提供了登录配置文件
~/.ssh/config,我们可以在本地配置 config 来快速登录 VPS。
创建 config 脚本文件( home/user/.ssh/ 文件夹里面)
1
vim ~/.ssh/config
配置 config 文件
1
2
3
4Host 配置别名(如,vps1)
Hostname serverName 或 serverIp
Port 端口
User userName示例:
1
2
3
4Host myblog
Hostname lizsblog.com
Port 26522
User root登录
保存号 config 文件的配置之后,就可以用别名来快速登录了1
ssh myblog
不过这样还是需要登录密码的,下面可以用
IdentityFile属性来设置不需要密码自动登录。
自动登录:ssh 密钥认证自动登录
ssh 密钥:
~/.ssh/id_rsa; ssh 公钥:~/.ssh/id_rsa.pub
在本地 PC 如果没有 ssh 公钥,则创建公钥
1
ssh-keygen -t rsa -C "comment"
执行过程中连续回车即可。
-t:指定密钥类型,默认即为rsa,可以省略;-C:设置注释,显示在公钥最后,可以省略。
将 ssh 公钥复制到远程服务器
~/.ssh/authorized_keys文件中- 简单粗暴:打开远程服务器,创建文件
~/.ssh/authorized_keys,将本地 PC 的 ssh 公钥的内容复制到authorized_keys中,注意是将内容追加到后面,前面可能已经有了其他人的 ssh 公钥。 - 在本地终端用命令实现:
1
2
3
4// 如果远程终端没有创建 .ssh 文件夹
cat ~/.ssh/id_rsa.pub | ssh username@hostname "mkdir ~/.ssh; cat >> ~/.ssh/authorized_keys"
// 已经创建 .ssh 文件夹
cat ~/.ssh/id_rsa.pub | ssh username@hostname "cat >> ~/.ssh/authorized_keys"
- 简单粗暴:打开远程服务器,创建文件
在本地 ssh 配置文件
~/.ssh/config添加IdentityFile属性1
2
3
4Host myblog
Hostname lizsblog.com
User root
IdentifyFile ~/.ssh/id_rsa自动登录
1
ssh myblog
不需要输入密码,直接登录了远程服务器。
- 创建多个服务器的快速登录
只需要在 config 文件里面空行添加多个 Host 配置即可。多个服务器是可以共用同一个 ssh 公钥来实现自动登录的。
其他配置属性
- 为了保持连接,ssh 每隔 30s 向 server 发出一次请求
1
2ServerAliveInterval 30 // timeout interval, unit seconds
ServerAliveCountMax 10 // server 没有响应时,最大执行发送请求次数。default 3
其他参考 www.openssh.com