使用 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 文档©

posted on 2015-02-11 13:45  wpjamer  阅读(1927)  评论(0编辑  收藏  举报

导航