当前位置: > Linux服务器 > SSH >

ssh密钥对的配置方法

时间:2014-08-04 21:50来源:linux.it.net.cn 作者:it
本文介绍ssh密钥对的配置方法,分别讲解windows与linux下密钥对的配置,希望对大家有所帮助。

1、首先,windows配置密钥对的方法,
运行SecureCRT, 选择菜单栏Tools->Create Public Key,点击“下一步”,选择Key Pair的算法类型为“RSA”(也可以使用“DSA”,但推荐使用RSA)。
将Key Pair保存到妥善的地方,如d:\sshkey\id_rsa,Public Key即为id_rsa.pub(建议改成登录的用户名作为区分)
生成的格式如下:
这个是公钥的格式
---- BEGIN SSH2 PUBLIC KEY ----
Subject: winxp
Comment: "winxp@机器型号"
ModBitSize: 1024
AAAAB3NzuwHsggMSjCydJA1ieEIVj2n0fUR2xrXLA7Jflf7YQ3mfhh6+n02kO6w==
---- END SSH2 PUBLIC KEY ----
  这个是私钥的格式:
---- BEGIN VAN DYKE SSH2 PRIVATE KEY ----
Subject: winxp
Comment: "winxp@机器标识"
ModBitSize: 1024
AAAAAQAAAJcAAAAHc3NoLXJzYQAAAAMBAAEAAACBANU45dnR0pgaSgPvTgK5bYRQXO4uLsifGJv6BAWvGwbxiDLRuk2qOBRy7TkI+/jyU9OW5HnO3UYee7yxopQLi/C4RiU3H++LvjOnDIF6TNxR0iTjrSJDoBTC5TQ2lC6lMbyWo11lsdrrC0aoluGjNXpm6A=
---- END VAN DYKE SSH2 PRIVATE KEY ----
但是不能直接复制粘贴到你的服务器上面,因为你的openssh不支持公钥这个格式。
所以要在服务器上面换格式:ssh-keygen -f -i 原来格式的公钥名。在服务器上看到的格式如下:
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEArpv8jqdSRiZ9011nLHB1HTD0ANUITKaIDm/VWjnQblKGMEs8U407PXdwZks6UatIMYv/IGkWBIqLRPRsiSFYaACyEV3tXXs484PFakrk+7hZF4iELPf0oLBp5fmjK7nB2OhTqs5+2DZpwMUMcxydVn8j2ZlWTzk/u4TxjWyQ==
但要注意这个是一行的。
ls -al .ssh 这个权限为700 ,要注意,如果你是在根目录下面配置的话,他默认是根用户的,所以还要把它改成自己的用户。
ls -al authorized_kyes 这个权限为600这个的用户也要改成自己的哦。
-rw-------  1 root root  406 2008-03-06 22:53 authorized_keys
改成
-rw-------  1 usename usename  406 2008-03-06 22:53 authorized_keys
以上是在window系统中配置密钥对。

2、linux主机配置密钥对,
$ssh-keygen -b 1024 -t rsa
Generating public/private rsa key pair。
Enter file in which to save the key (/home/$username/.ssh/id_rsa): 
(Key Pair将要保存的路径,括号内为默认)
Created directory '/home/$username/.ssh'。
Enter passphrase (empty for no passphrase): (输入口令)
Enter same passphrase again: (再次输入口令,千万不要忘记否则就只有从新生成密钥了)
Your identification has been saved in /home/$username/.ssh/id_rsa。(你的私钥)
Your public key has been saved in /home/$username/.ssh/id_rsa.pub。(你的公钥)
这里需要注意:这个ssh-keygen的命令不能在root下面执行,因为这个生成的密钥对在root下面。而不是你自己的用户目录下,而且公钥中的内容也跟roor相关,改起来很麻烦。所以必须在home/username的目录下面执行:ssh-keygen,因为这个是在linux系统上完成的。所以在放到服务器上的时候,就不需要再改格式了。

3、双系统的情况,在linux的主机上生成的密钥对,放在服务器上面的,但是当换window的系统时候,就登不上去了,此时想到把linux下的密钥对复制,粘贴到window下面,然后就改成类似securecrt生成的那个密钥对的格式。私钥格式是不会变得。公钥删去ssh-rsa ,然后加上收尾---BEGIN......----END就行了。 (责任编辑:IT)
------分隔线----------------------------