windows 上用程序putty使用 ssh自动登录linux(ubuntu)

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的学习笔记_百度空间

我对方法一进行了编辑,这样看起来应该更加清晰。

相关推荐