在不使用 SecureCRT、XShell 等终端模拟软件的情况下,每次登录 Linux 服务器都要手动输入密码,非常麻烦。然而日常维护中,Windows Terminal 就能完全胜任与服务器的交互,因此我们可以采用 SSH 公钥登录,省去输入密码的步骤。
生成密钥对
打开 Git Bash 窗口(推荐),输入以下命令,默认全部回车即可:
$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (~/.ssh/id_rsa):
Created directory '~/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in ~/.ssh/id_rsa.
Your public key has been saved in ~/.ssh/id_rsa.pub.
可见 ~/.ssh/ 目录已生成私钥(id_rsa)与公钥(id_rsa.pub)文件。
上传公钥
接下来将生成的公钥上传至 Linux 服务器,期间需要输入一次密码:
$ ssh-copy-id -i ~/.ssh/id_rsa.pub root@aliyun
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "~/.ssh/id_rsa.pub"
root@aliyun's password:
Number of key(s) added: 1
如果提示 ssh-copy-id 命令不存在,可以切换到 Git Bash 窗口重新执行,或者改用以下方式:
$ ssh root@aliyun 'mkdir -p .ssh && cat >> .ssh/authorized_keys' < ~/.ssh/id_rsa.pub
登录服务器
再次登录服务器时,就不需要输入密码了:
$ ssh root@aliyun
Welcome to Alibaba Cloud Elastic Compute Service !
root@aliyun:~#