不输入密码连接远程服务器
在部署应用的时候,我们通常要连接远程服务器,如果不使用一些专门的 ssh 软件而是使用终端的话。首先要在 shell 输入
ssh teddy@192.168.1.1
然后再输入密码,这一长串难记的 IP 加上密码让每次登录远程服务器都是一个挺不爽的过程。
直到发现 ssh-copy-id
这个很方便的工具,它的功能其实就是将本机的一个 RSA 秘钥上传到远程服务器的 authorized_keys
,
以后我们连接远程服务器的时候就会自动拿这个秘钥来验证,省去了我们自己输入密码的过程。
首先来在本机生成一个秘钥
ssh-keygen -t rsa
这里我给自己的秘钥的名称是 teddy_rsa
,会生成两个文件 teddy_rsa
以及 teddy_rsa.pub
接下来就是使用 ssh-copy-id
了,Mac 下面这个东西是要自己安装的
brew install ssh-copy-id
安装完成之后就是可以使用 ssh-copy-id 上传我们自己的秘钥了
ssh-copy-id -i teddy_rsa.pub teddy@192.168.1.1
OK
接着我们可以输入 ssh teddy@192.168.1.1
连接远程服务器,发现真的不用输入密码了。可是还是不够方便,
我们已然得每次输入那长长的 IP,其实是有办法解决的,我们在 ~/.ssh
目录下建立一个 config
文件,
这个文件专门用来配置我们的服务器的信息的,我们现在的这个服务器可以这样配置
config
Host teddy
HostName 192.168.1.1
User teddy
这样之后,我们只需要在终端输入 ssh teddy
就可以直接连接远程服务器了!