Windows使用SSH Secure Shell实现免密码登录Linux的方法以及使用scp2命令免密码下载文件

原创 2016年02月17日 23:12:54

1.   环境信息

SSH Secure Shell Client所在的操作系统:

Windows7

 

Linux服务器以及SSH的版本:

[hadoop@gpmaster ~]$ cat /etc/redhat-release

Red HatEnterprise Linux Server release 6.0 (Santiago)

 

[hadoop@gpmaster ~]$ ssh -V

OpenSSH_5.3p1, OpenSSL 1.0.0-fips 29 Mar 2010

默认各种版本的Linux或Unix操作系统都会安装好SSH服务的。

 

2.   Windows 7上面安装SSH客户端

登陆网址:http://ultra.pr.erau.edu/~jaffem/tutorial/SSH_secure_shell_client.htm

具体的下载地址为:

http://ultra.pr.erau.edu/~jaffem/classes/SSHSecureShellClient-3.2.9.exe

当然你也可以从http://www.ssh.com/上面下载。

 

下载的文件是一个exe可执行文件。SSH Secure Shell安装很简单,和一般windows软件安装没有区别,这里就不介绍了。

3.   免密码登录的原理

大家如果熟悉Linux的话,应该知道SSH服务中有公钥和私钥的概念。

Public Key是指公钥,而Private Key是指私钥。

认证的过程如下:

Public Key对数据进行加密而且只能用于加密,Private Key也只能对所匹配的Public Key加密过的信息进行解密。

如果我们把Windows上面生成的Public Key放到Linux服务器上指定用户家目录下面的.ssh目录中,并添加公钥内容到.ssh目录下面的authorized_keys文件。

如果我们开始从Windows(客户端)上面通过ssh方式远程Linux(服务器)时,此时客户端软件就会向服务器发出请求,请求用密匙进行安全验证。服务器收到请求之后,先在该服务器上的主目录下寻找公匙,然后把它和发送过来的公匙进行比较。如果两个密匙一致,服务器就用公匙加密“质询”并把它发送给客户端软件。客户端软件收到“质询”之后就可以用私匙解密再把它发送给服务器,此时因为密钥能匹配上,所以可以直接登录到Linux服务器。

4.   在Windows本机上生成密钥

首先找到SSH SecureShell的安装路径,比如我安装的路径指定为:

D:\SSHCommunications Security\SSH Secure Shell

我们可以通过dos命令在生成密钥,如下:

步骤一,进入dos界面

C:\Users\Administrator>

步骤二,进入SSH SecureShell安装路径:

C:\Users\Administrator>D:

D:\>cd D:\SSH Communications Security\SSH Secure Shell

D:\SSHCommunications Security\SSH Secure Shell>

步骤三,执行生成密钥的命令:

D:\SSHCommunications Security\SSH Secure Shell>ssh-keygen2-t rsa

注释:我们这里使用rsa的密钥,默认是2048bit(位),同样我们也可以使用dsa方式的密钥。

在执行ssh-keygen2 -t rsa生成密钥对时,会提示你输入Passphrase的值,我们要求免密码登录服务器,所以直接回车。 命令执行过程如下:

D:\SSH Communications Security\SSH Secure Shell>ssh-keygen2 -t rsa

Generating 2048-bit rsa key pair

   3 o..oOo.oOo.o

Key generated.

2048-bit rsa, Administrator@USER-20150414LO, Wed Feb 172016 13:34:16

Passphrase :

Again      :

Key is stored with NULL passphrase.

 (You can ignorethe following warning if you are generating hostkeys.)

 This is notrecommended.

 Don't do thisunless you know what you're doing.

 If file systemprotections fail (someone can access the keyfile),

 or if thesuper-user is malicious, your key can be used without

 the decipheringeffort.

Private key saved to C:/Users/Administrator/ApplicationData/SSH/UserKeys/id_rsa

_2048_a

Public key saved to C:/Users/Administrator/ApplicationData/SSH/UserKeys/id_rsa_

2048_a.pub

根据提示知道了生成的密钥对的路径,但是经过我实际查找,我的windows环境的密钥对位于:C:\Users\Administrator\AppData\Roaming\SSH\UserKeys下面。

 

5.   使用SSH客户端免密码登录到远程Linux服务器的hadoop用户下

1)   我们先用输入密码的方式登录到Linux服务器的hadoop用户下,然后在hadoop用户的家目录下面创建.ssh用户(如果已经存在就不需要创建):

[hadoop@gpmaster.ssh]$ pwd

/home/hadoop/.ssh

 

并在/home/hadoop/.ssh下面创建authorized_keys文件(如果已经存在就不需要创建)

2)   然后我们将Windows的C:\Users\Administrator\AppData\Roaming\SSH\UserKeys目录下的id_rsa_2048_a.pub文件上传到Linux服务器的hadoop用户的/home/hadoop/.ssh目录下面。

3)   如果是Linux之间信任关系,就直接将公钥的内容添加到authorized_keys文件中即可。但是这里因为我们的公钥是在Windows上面生成的,Linux的Openssh不识别,所以需要进行转换后再追加到authorized_keys中:

[hadoop@gpmaster.ssh]$ ssh-keygen -i -f id_rsa_2048_a.pub >>authorized_keys

 

4)   退出之前使用密码登录的SSH Secure Shell客户端,然后重新登录并在登录认证状态栏中选择Public Key方式,这样就可以免密码登录了。

6.   使用SSH Secure Shell客户端自带的scp2命令下载Linux服务器的文件

D:\SSH Communications Security\SSHSecure Shell>scp2.exe -r -d hadoop@192.168.1.128:/home/hadoop/testhivedataD:\test\

.000000_0.crc                          |   12B |  12B/s | TOC: 00:00:01 | 100%

000000_0                               |   96B |  96B/s | TOC: 00:00:01 | 100%

datacity.txt                           |  95kB | 95kB/s | TOC: 00:00:01 | 100%

可以看出远程拷贝也不需要输入密码。

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/jiangshouzhuang/article/details/50683049

windows下用git配置ssh实现无密码登录

1.  Git是一种分布式版本管理工具。与SVN的最大区别在于,用户在本机即可实现一套完整的版本管理,即不依赖网络实现本机的离线提交和离线历史纪录。 2.  SSH是一种基于应用层上的安全协议,用这...
  • chenle408
  • chenle408
  • 2017年02月25日 20:37
  • 3415

windows下crywin SSH免密码登录到远程linux服务器详解

SSH采用的是”非对称密钥系统”,即耳熟能详的公钥私钥加密系统,其安全验证又分为两种级别。 1. 基于口令的安全验证 这种方式使用用户名密码进行联机登录,一般情况下我们使用的都是这种方式。...
  • u014351782
  • u014351782
  • 2016年05月26日 16:45
  • 3035

windows配置ssh免密登录linux

windows配置ssh免密登录linux客户端(windows)要做的事情默认机器上已安装git,若没有,请先安装git 查看本地是否有ssh公钥文件夹,若没有,则创建文件夹,若存在,直接跳到第mk...
  • zf424zf
  • zf424zf
  • 2017年03月01日 10:12
  • 4228

SSH Secure Shell Client 记住密码

from  http://blog.sina.com.cn/s/blog_4a0a8b5d01015r7p.html 1. Edit->settings->Keys 2. 点击...
  • u012307002
  • u012307002
  • 2014年02月15日 21:42
  • 5902

SSH Secure Shell Client使用方法

说明:本记录仅是使用此软件的一种简单的操作方式1:双击其客户端图标SSH Secure Shell Client,出现下图所示窗体2:使用她主要用于发布项目的,所以第一次使用会选择新建一个账户3:填写...
  • zhailihua
  • zhailihua
  • 2017年07月24日 07:53
  • 3179

SSH Secure Shell Client用密钥认证登录linux服务器

一、简介      1. Edit->settings->Keys      2. 点击“Generate New” 可选择 rsa dsa两种加密方式      3. 输入生成Key的文件名和注释,...
  • taozpwater
  • taozpwater
  • 2014年02月15日 20:52
  • 11680

配置Cygwin支持无密码SSH登陆

时间:2014-06-28 1、安装SSH 默认的Cygwin没有安装ssh,所以重新运行http://www.cygwin.com/setup.exe 在Select Packages...
  • fishineye
  • fishineye
  • 2015年07月28日 10:51
  • 3403

windows下openssh无密码ssh登陆linux

1.安装openssh软件 2.Windows端配置: cmd下执行: ssh-keygen -t dsa 提示Enter passphrase时留空,直接...
  • gaoxuefeng
  • gaoxuefeng
  • 2012年07月13日 16:18
  • 4386

SSH Secure Shell Client用pub key认证登录linux

启动: Edit->settings->Keys 点击“Generate New”->重复点下一步 接着先要用“密码认证方式登录一下” 登录后,再到Edit->Settings...
  • wangxiaopeng0329
  • wangxiaopeng0329
  • 2015年07月18日 16:43
  • 1936

ssh远程自动登陆记住密码

先来看一个ssh大概流程图,虽然感觉可能有点儿细节不正确,感觉大致还是正确的: 想要使用ssh远程自动登陆,服务器和本地客户端都必须做一些设置和配合才行,大致说来有如下步骤: 1.客户端本地生...
  • Sasoritattoo
  • Sasoritattoo
  • 2013年07月13日 15:05
  • 7309
收藏助手
不良信息举报
您举报文章:Windows使用SSH Secure Shell实现免密码登录Linux的方法以及使用scp2命令免密码下载文件
举报原因:
原因补充:

(最多只允许输入30个字)