putty设置ssh
第一步:生成密匙
运行puttygen.exe,选择需要的密匙类型(parameters)和长度(bits)。putty默认使用SSH1协议,这里选择ssh-2 RSA长度默认值为1024。
点击Generate生成密匙,生成后 的Key passphrase 和 Confirm passphrase 两项可以保持为空,passphrase是用来保护私匙的密码,如果没什么特别高的安全要求就不用了,免得登录时还要输入一次密码。后面讨论如果输入passphrase,也可以自动登录系统。如下图:
点击 Save public key 按钮和 Save private key 按钮分别保存公匙和私匙, 例如 idssh.pub(默认保存无后缀,如idssh,无碍) 和 idssh.ppk。
第二步:上传密匙
用自己的帐号登录远程系统,然后执行下面的命令:
$mkdir .ssh #在需要开启ssh连接的用户目录下建立 .ssh目录()
$chmod 700 .ssh
$ssh-keygen -i -f idssh >>.ssh/authorized_keys
$chmod 644 .ssh/authorized_keys #这一步要设置为644或600,生成的authorized_keys文件要属于当前设置用户。
第三步
vim /etc/ssh/sshd_config #修改ssh配置文件
(1) Protocol 2 #仅允许使用SSH2
(2) Port 22 #使用22端口
(3) PermitRootLogin yes #允许root登录
(2) PubkeyAuthentication yes #启用公告密钥配对认证方式
(3) AuthorizedKeysFile .ssh/Identity.pub #设定PublicKey文件路径
(4) RSAAuthentication yes #允许RSA密钥
(4) PasswordAuthentication no #禁止密码验证登录,如果启用的话,OpenSSH的 RSA认证登录就没有意义了。
第四步,重新加载sshd服务,/etc/init.d/sshd restart 或 service sshd restart
第五步:设置Putty
启动Putty,设置好session的各项参数(如IP address,protocol选择SSH),然后从左边选择SSH,”Preferred SSH protocol version:”,
这时我们用的是SSH1协议,那么我们就选择协议版本1,再“SSH->Auth”,”Private key file for authentication:” 点击 Browse 按钮,选择 idssh.ppk 文件。
再从左边选择 Session,然后点击 Save 按钮把修改保存下来。然后点击Open 按钮就可以登录了。
如果上面的操作都没有问题,那这时应该就自动登录了,无需输入密码。 正常情况下会显示如下:
login as: root
Authenticating with public key "rsa-key-20050328"
Last login: Mon Mar 28 14:39:13 2005 from 192.168.0.2
有了上面第二行的信息,表明你已经正常启用SSH通讯了。
SecureCRT设置ssh
第一步,生成公钥/密钥对
使用SecureCRT的 工具->创建公钥 即可,加密算法选择RSA,因为sshd配置文件中选择了RSA算法
这一步会生成两个文件,默认是Identity和Identity.pub,其中Identity为密钥,Identity.pub为公钥。这一步中,通行短语可以不输入。不输入的话登陆时不需要输入通行短语。如果输入了,登陆的时候会要求你输入通行短语。
第二步,上传Windows客户机SecureCRT生成的公钥 Identity.pub到用户home目录下.ssh文件夹中,一般是用ftp上传.注意上传之前,一定要以ASCII格式上传。
#cd ~
#mkdir .ssh #在需要开启ssh连接的用户目录下建立 .ssh目录
#chmod 700 .ssh
#ssh-keygen -i -f .ssh/Identity.pub >>.ssh/authorized_keys(这一步很重要,不然open ssh不认识SecureCRT生成的公钥.)
#chmod 644 ./.ssh/authorized_keys #同上这一步要设置为644或600,生成的authorized_keys文件要属于当前设置用户。
OpenSSH公钥没有使用采用 IETF SECSH 标准,所以和SecureCRT的公钥格式不兼容,需要使用OpenSSH自带的 ssh-keygen 命令转换以后才能被OpenSSH识别。authorized_keys 可以保存多个公钥,所以公钥格式转换导入的时候,应该使用追加符 >> ,而不是 >。
#ssh-keygen -i -f Identity.pub >>.ssh/authorized_keys
第三步
vim /etc/ssh/sshd_config #修改ssh配置文件
(1) Protocol 2 #仅允许使用SSH2
(2) Port 22 #使用22端口
(3) PermitRootLogin yes #允许root登录
(2) PubkeyAuthentication yes #启用公告密钥配对认证方式
(3) AuthorizedKeysFile .ssh/Identity.pub #设定PublicKey文件路径
(4) RSAAuthentication yes #允许RSA密钥
(4) PasswordAuthentication no #禁止密码验证登录,如果启用的话,OpenSSH的 RSA认证登录就没有意义了。
第四步,重新加载sshd服务,使用/etc/init.d/sshd restart即可
到此,设置完成。可能通过新建会话来检验,在SecureCRT中新建会话时选择使用公钥认证即可
putty的密钥转换成SecureCRT的密钥
两个程序一起用的话,两密钥是默认不能通用的,
用puttygen.exe 载入自己生成的private key,然后用“转换”导出openssh格式的private key,名自定(无后缀),最后在securecrt的选项里指定这个转换后的就OK了。