使用ssh登陆服务器

2020-07-12  本文已影响0人  web_jianshu

工作中,需要经常登陆到开发机上,一般我们输入

ssh username@example.com(例如: ssh root@47.114.48.244)

之后,会提示输入密码,即可完成登陆。

每次都输入这么多,太麻烦,我用如下方法快速方便地登陆:

第一步,先省去输入密码操作,方法如下:

自己的机器上使用ssh-keygen生成一对公钥和私钥

ssh-keygen -t rsa -C 'your email address'

按照提示,默认会生成 ~/.ssh/id_rsa, ~/.ssh/id_rsa.pub

然后我们需要将公钥id_rsa.pub添加到服务器的authorized_keys,这样,就可以免密码登陆了。

用老办法登陆到服务器上,在服务器上如下操作

cd ~/.ssh
vim authorized_keys

将上步在本地机器上生成的id_rsa.pub内容附着到服务器上的authorized_key文件后面(如果原文件有内容的话),保存。

这里,还需注意服务器上.ssh文件夹及authorized_key这个文件的访问权限。

chmod 600 authorized_keys
chmod 700 .ssh

一切ok,现在使用ssh username@example.com,不需要输入密码了,直接就登陆进去了!

第二步,省去输入username@example.com,此步骤在本地机器上操作

方法较多,可以在.bashrc中添加alias;也可以写一个.sh脚本文件,执行一下该文件就行。

但是这里,我使用ssh config方法来完成。具体如下

cd ~/.ssh
vim config

在config文件里,添加如下代码

Host dev
     hostname example.com
     user username

现在在console试试
ssh dev
就可以直接成功登陆了!

因为上面第一步,我们在服务器的authorized_keys添加了自己的公钥,所以登陆很方便;但有些时候,我们没有权限做这个事情,比如登陆公司relay机等,还是得输入密码。一个console不够用,我们想新开一个console tab(如我用iTerm, command+T),这个时候我们在新窗口里面ssh login时,又提示输入密码,很烦。下面的办法可以解决!

在本地机器上,还是打开.ssh/config文件,添加如下几行

Host *
     ControlPath ~/.ssh/master-%r@%h:%p
     ControlMaster auto

这样,我们看到,当第一次连上服务器后,就会在.ssh下生成一个master-usrname@example:port的文件,此后,建立同样的新连接会共享这个文件,不需要输入密码了。

经过这些配置,现在登陆起来是不是方便多了?

上一篇下一篇

猜你喜欢

热点阅读