使用 Linux 终端 SSH 登录 VPS
Windows 中远程 SSH 登录 VPS 进行管理的利器是 PuTTY,但是 Linux 中就没必要用它了。Linux、Unix(包括 Mac iOS)都必然有内置的命令行终端,内建了 OpenSSH 指令。通过它登录 VPS 上的 Linux 系统要更方便。
在 Linux 中打开命令行终端,直接输入指令,
ssh <username>@<serverdomain 或 ip> -p <port>
就会提示输入密码来登录。也可以使用图形界面,如果服务器支持的话,增加参数 -X 即可。
有了 Terminal 的特色,PuTTY 就显得没多大用处了。为了更方便,还可以配置本地 SSH 的 config 来简化指令输入。
创建 SSH 的 config 文件,
touch ~/.ssh/config
一般情况下,这里的 ~
表示当前系统用户的根用户目录,所以这个文件可能是/home/username/.ssh/config
(要看所使用的系统了)。
现在输入配置,比如上面指令用到的例子,用户名为 username,VPS 服务器为 server_IP,服务器上的 SSH 服务端口为 4321,则,
cat >> ~/.ssh/config <<EOF Host your_alias User username Hostname server_IP Port 4321 EOF
这里 your_alias 可以是自己想要的任何别名,比如 myvps。现在就可以直接简单的输入,
ssh your_alias
来登录 VPS 了。与前面的第一条指令是一样的。
还可以给这个配置再加点别的特性,比如连接保持。希望让它在我们没有操作的时候自动每隔一定时间(比如 30 秒)发送一次无意义数据来保持连接不被服务器断开,
cat "ServerAliveInterval 30" >> ~/.ssh/config
这样,在我们不操作的时候 Terminal 就会每隔 30s 发送一次数据以保持连接,直到我们自己退出。
如果有多个服务器,还可以再增加一个 HOST,例如,
cat >> ~/.ssh/config <<EOF
Host myvps
User me
IdentityFile ~/.ssh/id_rsa
Hostname myvps_IP
Port 4321
ServerAliveInterval 30
EOF
这里的 IdentityFile ~/.ssh/id_rsa 表示私钥文件位置,用于使用密钥登录的情况,未开启密钥登录可以不加该配置。上面在 Host 声明之前加个空行以与上一个配置隔开,主要是为了回头检查 config 文件的时候好看用的 :D
另外,如果使用密钥登录,请记得给本地私钥设置权限
sudo chmod 600 ~/.ssh/id_rsa
或者
sudo chmod 400 ~/.ssh/id_rsa
SSH 的 config 还有很多参数,可以参考 OpenSSH 文档。©