日期:2014-05-16  浏览次数:20867 次

linux中使用密钥远程连接的配置

服务器端设置

使用公钥认证需要对服务器进行一些设置。修改 /etc/sshd_config 的以下配置。

RSAAuthentication yes        # 启用 RSA 认证PubkeyAuthentication yes     # 启用公钥认证PasswordAuthentication no    # 禁止密码认证

然后重新启动 sshd。

/etc/init.d/ssh restart

客户端设置

Linux

假设客户端的用户 charlee 要以 guest 用户登录到服务器上。首先在客户端执行下面的命令。

[charlee@client:~]$ ssh-keygen -t rsaGenerating public/private rsa1 key pair.Enter file in which to save the key (/home/charlee/.ssh/id_rsa):Enterpassphrase (empty for no passphrase):  输入密码Enter same passphrase again:   再次输入密码Your identification has been sabed in /home/charlee/.ssh/id_rsaYour public key has been saved in /home/charlee/.ssh/id_rsa.pub

生成的文件保存在主目录的 .ssh 目录下,id_rsa为客户端密钥,id_rsa.pub 为客户端公钥。

之后,通过 U 盘(或者使用“scp?/root/.ssh/id_dsa.pub??root@192.168.20.60:/root/.ssh”IP为服务器端IP)等方式将公钥 id_rsa.pub 复制到服务器上,并执行下列命令。

[guest@server:~]$ cat id_rsa.pub >> .ssh/authorized_keys

其中 id_rsa.pub 是客户端的用户 charlee 的公钥。

这样在客户端即可通过以下的命令连接服务器。

[charlee@client:~]$ ssh -l guest server

若不想每次登录服务器时都输入密码,可以先执行下列命令:

[charlee@client:~]$ ssh-addEnter passphrase for /home/charlee/.ssh/id_rsa: 输入密码Identity added: /home/charlee/.ssh/id_rsa (/home/charlee/.ssh/id_rsa)

以后登录服务器就不需要输入密码了。

Windows

假设我们使用putty连接ssh服务器。为了使用公钥认证,我们需要同时下载puttygen这个工具来生成 putty 所使用的密钥。

使用Linux下生成的公钥和密钥的情况