wozijisunfly 2010-04-12
注:下面的文件名authorized_keys是不可换用其它名称的!
方法一:使用puttygen.exe
第一步:生成密匙
运行puttygen.exe,选择需要的密匙类型和长度,使用默认的SSH2(RSA),长度设置为1024就可以了。
passphrase可以为空,免得登录时还是要输入一次密码。
点击Saveprivatekey按钮保存私匙,例如key.ppk;
复制puttygenpublicKey文本框内的内容到剪贴板中。
第二步:上传密匙
用PuTTY0.60(Linuxssh).exe连接linux机器,帐号为chenxiaowen,然后执行下面的命令:
$cd~【打开登录帐号的文档目录,相当于windows下面的目录C:\Users\lenovo】
$mkdir.ssh【创建.ssh目录,如果已经存在就别建了,在linux上默认看不到该目录(在文件浏览器中通过勾选菜单查看>显示隐藏文件可以看到该文件夹)】
$chmod700.ssh【修改文件权限,700表示为用户设置读、写、执行的权限(开头的7),而不给组和其他用户的权限(后面的两个0)】
$cd.ssh
$cat>authorized_keys【创建文件,文件名为authorized_keys,并将下面的内容输入到该文件】
粘贴刚才复制的publickey字符内容(粘贴的方法:在Putty窗口中按Shift+Ins或者点右键);
再按Ctrl+D键保存,结束cat输入内容到该文件的(ctrl+c则是不保存结束输入)。
【在输入的过程中,按回车(enter)键能立即保存刚才输入的文本内容并在文件中抬头】
$chmod600authorized_keys
第三步:设置Putty
1)启动Putty,设置好session的各项参数(如果以前已经设置过,那么load一下)
菜单“SSH->Auth”,点击Browse按钮,选择key.ppk文件。
2)菜单Connection->Data->Auto-loginusername填写自动登录所用帐号名称,这里为chenxiaowen,要对应上面用到的
3)菜单Session,选择DefaultSettings,点击Save按钮保存修改。然后点击Open按钮就可以登录了。
如果上面的操作都没有问题,那这以后直接运行程序PuTTY.exe就可以无需输入密码自动登录了,登录提示如下:
----------------
Usingusername"chenxiaowen".
Authenticatingwithpublickey"rsa-key-20100412"
Linuxchenxiaowen-laptop2.6.31-14-generic#48-UbuntuSMPFriOct1614:04:26UTC2009i686
ToaccessofficialUbuntudocumentation,pleasevisit:
http://help.ubuntu.com/
260packagescanbeupdated.
106updatesaresecurityupdates.
Lastlogin:MonApr1222:15:242010from192.168.0.132
chenxiaowen@chenxiaowen-laptop:~$
----------------
-----------------------
到这里基本可以结束了。。。。
但是如果希望这个privatekey使用在linux主机上,不用密码登陆上放有publickey的主机上,
那么:
第四步:linuxprivatekey设置
(运行puttygen.exe,load前面保存的key.ppk,如果还没关puttygen.exe,
这一步就不用了)
选择菜单Conversions->ExportOpenSSHkey,保存成文件id_rsa,上传到linux
主机的~/.ssh/目录下,这样这台主机就可以不用密码登陆到前面放有publickey的
主机上了。
$chmod600~/.ssh/id_rsa
=================================================
方法二:使用linux命令ssh-keygen
第一步:产生key
ssh-keygen-b密匙长度-t密匙类型
密匙类型可以是:rsa1(对应SSH1RSA)、rsa和dsa(对应SSH2)
如:
$ssh-keygen-b1024-trsa
默认在~/.ssh下会生成id_rsa和id_rsa.pub
这里id_rsa是privatekey,id_rsa.pub是publickey(密钥类型RSA,密钥长度1024)。
第二步:设置linux主机
把id_rsa.pub复制为authorized_keys,放在需要登陆的linux主机的~/.ssh目录下
$scpid_ras.pubhostname1:/home/username/.ssh/authorized_keys
这样就可以不用密码ssh到hostname1上了(hostname1和username根据自己情况而定,用户名和本地相同,不相同的话要显式地指定用户名:scpid_ras.pubusername@hostname1:/home/username/.ssh/authorized_keys)
如果想使用putty,因为ssh-keygen生成的SSH2密匙和putty的密匙格式不同,无法直接使用,
必须用puttygen.exe转换一下:
第三步:转换privatekey,设置putty
使用winscp(推荐)或者psftp.exe或者ftp把id_rsa下载到本地,运行puttygen.exe,选择菜单Conversions->Importkey
然后saveprivatekey(比如key.ppk),就可以使用这个privatekey设置putty了,设置方法和上面相同。
putty.exe和puttygen.exe下载地址:
http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html
原文标题:
使用public/privatekey让putty(ssh)自动登录(以及linux上使用密钥做ssh自动登陆)_Felix的学习笔记_百度空间
我对方法一进行了编辑,这样看起来应该更加清晰。