注意
:代码中的 # 只表示注释作用,该内容不能输入到命令行窗口中
使用 PuTTYgen 在 Windows 系统上生成密钥对
-
Locate and run the PuTTYgen.exe(
PuTTY Key Generator),select SSH-2 RSA key type,
then press the Generate button and move the mouse over the blank area
(as prompted) to generate some randomess on the keys, as the following
graph 20.6:
图 20.6 在 PuTTYgen 中生成公钥对
-
When the key generation completed, copy all the
text of public key in the box and append it to lewis's
$home/.ssh/authorized_keys file, as the following graph 20.7:
图 20.7 复制公钥内容到 authorized_keys 文件中
-
Click “Save private key” button to save the
PuTTY-generated private key that pair the public key appended to
$HOME/.ssh/authorized_keys file:
图 20.8 PuTTYgen 已生成公钥
-
Run the Putty client (putty.exe) to specify the
saved private key and auto-login username before initiating connection
to lewis.
第四点的内容和 在 Windows XP 上使用 OpenSSH 和 PuTTY 的公钥认证远程管理 Unubtu Server 10.04 LTS——上
对应内容一模一样,这里不再累赘。
我们可以按“Save private
key”,将私钥保存到本地磁盘上。由于我们要使用公钥认证登录到服务器上,所以必须将私钥保存起来,这样 PuTTY
就可以使用该私钥来登录到服务器上。那我们为什么不保存公钥呢?由于使用 PuTTYgen 保存的公钥格式和 Ubuntu Server
的公钥格式不一样(到底那些格式不一样,请参考 How To Fix “Server Refused Our Key” Error That Caused
By Putty Generated RSA Public Key?
),所以我们没有必要保存它。那登录服务器时要用到公钥的,那正确的公钥在哪里呢?下面,我就给你解答这个问题。
我使用 Linux 也不到两个星期,为了解决这个问题,就找我的挚友——Google
帮忙了。首先,当然是查看 PuTTY User Manual
喽接着查找关于,接着找到 Chapter
8: Using public keys for SSH authentication
(该文档对使用 SSH 权限的公钥认证描述的非常清晰,关于这方面的问题,直接找该文档即可) ,然后就找到了 8.2.10
‘Public key for pasting into authorized_keys file’
(我们
下载
PuTTY 的 zip 包,直接解压即可运行,里面已包含用户手册,同时也已将它上传到附件中)
,我已将该文档转化为 PDF 格式(只要安装了 Adobe Acrobat,就可以使用 IE 浏览器将 HTML 文件转化为
PDF),详见附件。
-
该文档提到:OpenSSH 服务器要求 SSH-2 的公钥格式也是一行格式(one-line
format),“Public key for pasting into OpenSSH authorized_keys
file”的文本框中给出的是正确的且是一行格式的公钥数据。一般的,我们会使用鼠标来选择这个文本框中的所有内容,接着按“Ctrl+C”
将其内容复制到剪贴板,然后将公钥数据黏贴到已建立连接到服务器的 PuTTY 会话中
,相关命令行详见下文。本人已测试过,该方法可行。
-
copy all the text of public-key in the box and
save it to the text file that name is id_rsa.pub, then use PuTTY's PSCP
tool to transfer the id_rsa.pub file to lewis's (the Ubuntu Server)
$HOME/.ssh category, next append it to the same category of
authorized_keys file. If the authorized_keys file is not exsit, then you
must create it, and grant it to the -wr------ access right. We will use
the following command-line to fullfil this task.
我自己的方法本质上就是官方提供的方法,只是用文本文件作为传递的桥梁而已。所以,建议直接使用第一种方法。
# 第一种方案的命令行数据
$ cd .ssh
$ sudo nano authorized_keys
# 然后将光标定位到文件的末尾空白行,按“Ctrl+C”,就可以将公钥数据追加到authorized_keys 文件中了,接着按“Ctrl+O”保存文件,再按“Ctrl+X”退出文件编辑状态。
# 文件保存后,重新启动 SSH 服务
$ sudo /etc/init.d/ssh restart
# 第二种方案的命令行数据
# 打开 Windows 命令行窗口,输入下面命令代码
# pscp -i E:\key\id_rsa1.ppk -P 2323 -scp E:\key\id_rsa1.pub lewis@192.168.1.199:/home/lewis/id_rsa1.pub
$ cd .ssh
# 将 id_rsa1.pub 文件的内容追加到 authorized_keys 文件的末尾
$ cat id_rsa1.pub >> authorized_keys
# If $HOME/.ssh/authorized_keys does not exist then
$ cd .ssh
$ cp id_rsa1.pub authorized_keys
# 给该用户赋予操作该文件的相关权限
$ chmod 600 authorized_keys
# alternative
$ cd $HOME/.ssh
$ touch authorized_keys
$ chmod 600 authorized_keys
PSCP 的参数选项请参考官方文档 PSCP Usage
,对每个参数的含义都解释的非常清晰明了。For troubleshooting, you can refer to Putty Event
Log in windows, i.e. right-click the Putty window title bar and click on
the Event Log
menu:
刚开始,我也出现“Server Refused Our
Key”错误,就是因为直接将 PuTTYgen 生成的公钥保存了,然后就 append it to the
authorized_keys,并且那时的 .ssh 目录下还没有包含 authorized_keys 文件。然后就到 Google
搜索相关资料,参考了以下几篇文章,并将它们总结成上面这些文字。
怎么界面都是命令行的,没有图形界面的?在下一篇中,我将给你解答。
参考资料
-
Chapter
8: Using public keys for SSH authentication
下的 8.2.10
‘Public key for pasting into authorized_keys file’
-
Configure Putty To Support Password-less SSH Login
-
How To Fix “Server Refused Our Key” Error That Caused
By Putty Generated RSA Public Key?
SSH 小技巧
用 scp 远程复制文件
通过 scp 命令,可以将本地文件复制到远程 SSH 服务器,也可以将远程 SSH 服务器上的文件复制到本地,还可以从一台 SSH
服务器将文件复制到另一个 SSH 服务器。如果在 Windows 平台上,则可以使用 PuTTY 的姊妹程序 PSCP。
- 将本地文件复制到 SSH 服务器
- 将 SSH 服务器文件复制到本地
- 两台 SSH 服务器之间复制文件
- 复制某目录下的所有文件
- 使用公钥认证
# 注意:将 PuTTY 的根目录添加到系统环境变量中
# 使用 SSH 的公钥认证方式
# 将本地文件复制到 SSH 服务器
pscp -i E:\key\id_rsa1.ppk -P 2323 -pw ****** -scp E:\key\id_rsa1.pub lewis@192.168.1.199:/home/lewis/
id_rsa1.pub | 0 kB | 0.2 kB/s | ETA: 00:00:00 | 100%
# 将 SSH 服务器的私钥文件文件复制到本地
pscp -i E:\key\id_rsa1.ppk -P 2323 -pw ****** -scp lewis@192.168.1.199:/home/lewis/.ssh/id_rsa E:\key\id_rsa_server.ppk
id_rsa.ppk | 1 kB | 1.7 kB/s | ETA: 00:00:00 | 100%
# 在两台 SSH 服务器直接复制文件,只能使用公钥认证方式登录
scp -P 2323 -i /home/lewis/.ssh/id_rsa id_rsa.pub lewis@192.168.1.198:/home/lewis/
scp、PSCP命令的具体参数详见以下官方文档:scp(1)
、PSCP
Usage
在客户端上指定命令
使用 ssh,可以在命令行上指定要执行的命令。
在服务器上限制所执行的命令
在服务器上做限制,使 SSH
连接进来后,只能够执行指定的命令。为此,我们需要修改~/.ssh/authorized_keys 文件,在相应的 key 面前,用
command 关键字加上要执行的命令,格式为:
command="/path/to/some/command arge " ssh-rsa ......(key)......
注意
:所有内容必须在同一行内。如果你使用 nano 编辑器,则需要加上 -w 选项,禁用自动换行功能。
SSH 连接后,会从服务器的
~/.ssh/authorized_keys读取该 command
参数,并执行其中指定的命令,然后退出,直接回到客户端。你可以在服务器上看看命令是否执行成功:
$ cat files.list
SSH 的这种功能,在很多时候可以派上用场。
修改密钥口令
你可以随时修改密钥的口令,使用 ssh-keygen 的 -p 选项即可。
将密钥放入内存
如果你需要频繁地使用密钥进行远程连接,则可以用 ssh-agent
代理创建一个会话,然后用 ssh-add 将私钥加载到内存中:
$ ssh-agent $SHELL
$ ssh-add
现在,在此会话中,所以的远程 ssh
命令都不需要再调用密钥了,当然也就不需要再频繁地输入口令了。
使用结束后,记得从内存中删除密钥:
$ ssh-add -D
然后,退出 ssh-agent 会话:
$ exit
在 Windows 下,可以使用 Pageant 实现相同的功能。
上一篇:在 Windows XP 上使用 OpenSSH 和 PuTTY 的公钥认证远程管理 Unubtu Server
10.04 LTS——上
下一篇:在 Windows XP 上使用 FileZilla 来图形化界面管理 Linux Server——下
- 大小: 14.5 KB
- 大小: 9.8 KB
- 大小: 20 KB
- 大小: 25.2 KB
- 大小: 17.3 KB
- 大小: 7.3 KB
分享到:
相关推荐
puttygen-SSH密钥生成利器 puttygen是专为windows用户用以生成 linux的ssh协议的公、私密钥的小工具,该工具简单易用,功能十分强大
PuTTYgen 是一套可以產生金鑰的工具,它可生成 RSA 以及 DSA 的金鑰, 做出來的公開以及私有金鑰,可以用於 PuTTY 、 PSCP 、 Plink 以及 Pageant 。
windows下生成 公钥密钥的工具 还有保存成 ppk 亲测好用
puttygen,windows系统下用于生成公钥和私钥。 密钥原理是:服务器用公钥加随机字符串加密,加密结果发送给客户端,客户端用私钥解密,解密结果再发送服务端 服务端验证通过则允许客户端登录。
PuTTYGen(密钥生成工具) V0.68 官方版
密钥转换工具,可以将puttygen生成的密钥转换为RSA密钥
puttygen 密钥生成器,提示密钥生成时,鼠标要在界面上不断移动才能生成
puttygen Openshift专用
附件中包含putty工具和生成putty key所需的puttygen工具,连接ssh是使用key比较方便,可以免去输入密码的麻烦,本人使用这个工具连接Amazon EC2的instance还是比较方便的。
putty的密钥生成器。是使用openssh的必用软件
转换ssh密钥为TortoiseGit可使用的密钥,安装后生成puttyGen,运行后导入ssh生成的私钥文件,另存为.ppk文件。再运行pageant导入该ppk文件即可
PuttyGen:是一套可以产生密钥的工具;可以生成RSA或DSA密钥;用于Putty、Plink、PSFP、PSCP和Pageant.
setupssh-8.5p1-1.exe 是利用ssh-keygen命令生成密钥对 ;puttygen是用于创建ssh密钥的软件,创建的是ssh-2、RSA和2048bit内容的密钥
id_rsa转化成putty可以用的文件!
PuttyGen概念及创建密钥方法 PuttyGen:是一套可以产生密钥的工具;可以生成RSA或DSA密钥;用于Putty、Plink、PSFP、PSCP和Pageant.
putty,puttygen,sshkey工具合集下载,一次下载,不用东找西找了
在上一篇的确保Linux VPS及服务器更加安全之Xshell设置密钥登录文章中已经分享到XSHELL使用密钥登陆我们的VPS服务器确保机器的...看到很多教程有提到用puttygen.exe文件可以生成密钥的,但是可能会出现Server refused
最简单的使用,登录 SSH 主机 中文乱码的处理 ...用 PuTTYgen 生成密钥,登录 SSH 主机不再需要口令 Pagent 代理密钥,每次开机只需要输入一次密钥口令 Plink 简单而又迅速的执行 SSH 主机上的程序