使用ssh登陆服务器

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

1 ssh username@example.com

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

 

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

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

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

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

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

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

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

1 cd ~/.ssh
2 vim authorized_keys

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

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

1 chmod 600 authorized_keys
2 chmod 700 .ssh

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

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

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

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

1 cd ~/.ssh
2 vim config

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

1 Host dev
2     hostname example.com
3     user username

现在在console试试

1 ssh dev

就可以直接成功登陆了!

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

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

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

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

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

posted @ 2015-03-28 13:28  令梦  阅读(11331)  评论(0编辑  收藏  举报