设置 SSH 免输入账号、参数自动登录

Posted by David on 2012-05-05 in Linux

一直以来都是通过 SecureCRT 来管理和连接 Linux 服务器的,现在大部分工作时间都在 Mac OS X 下,虽然 OS X 已经自带了终端,不过为了安全通常我们都会修改服务器的默认连接端口,于是在终端下 SSH 连接服务器就需要敲长长的一段命令,而且有些时候也记不住那么多的服务器 IP 地址,为了偷懒和提高效率我们需要来配置一下 SSH 的连接设置。

设置别名

打开 ~/.ssh/config 文件(如果没有 config 文件,需要自己创建一个),输入一下配置:

Host svralias
	HostName 202.202.202.202
	User david
	Port 2299

这样一下,原本的连接命令就简化成

ssh svralias

设置自动登录

不过我们仍旧得手工输入登录密码。我同样记不住那些复杂的服务器密码,于是通过配置密钥和公钥来实现安全登录。首先先在本机生成密钥和公钥,执行命令

cd ~/.ssh
ssh-keygen -t rsa

系统会提示

Generating public/private rsa key pair.
Enter file in which to save the key (/Users/david/.ssh/id_rsa):

一般情况下,直接按回车就可以了,不过在有多台服务器的情况下,我们还是设置一下不同的文件名吧,我的做法是和上文设置的服务器别名对应起来,例如 svralias_id_rsa

接下来系统会提示是否设置 passphrase,可以直接按回车忽略,这样最终我们得到一对文件:

Your identification has been saved in svralias_id_rsa.
Your public key has been saved in svralias_id_rsa.pub.

接下来将公钥文件也就是 svralias_id_rsa.pub 的内容追加到目标服务器~/.ssh/authorized_keys 文件中,在终端执行命令:

cat svralias_id_rsa.pub | ssh svralias "cat - >> ~/.ssh/authorized_keys"

不过有时候,服务器上可能不存在 .ssh 目录 或 authorized_keys 文件,这时候需要手工创建一下。

最后:检查一下 .ssh 目录 和 authorized_keys 文件的权限设置,确保只有所有者才有权限读写:

chmod 700 .ssh/
chmod 600 authorized_keys

之前就是因为文件夹和目录权限的原因而导致无法通过公钥密钥登录,在此记录一下。

Tags: , .

Comments

  1. 1 taber

    刚用上了 32个赞!

Trackbacks / Pingbacks

  1. » Business Become

Leave a Reply

You can use these XHTML tags:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>