配置SSH无密码访问

二:SSH无密码访问远程机器

(1)首先确保Linux系统已经安装ssh服务

安装方法:apt-get install ssh

安装完成后,验证是否SSH安装成功:ssh -V

结果显示ssh版本证明成功

查看Server端zyp用户家目录下是否存在隐藏目录".ssh"

在安装ssh完成后,进入zyp用户家目录,使用命令:ls -al    查看目录结构中是否存在隐藏目录“.ssh”

若存在,则操作正确,若不存在,解决方法如下:

1)按照步骤一,重新安装一遍ssh服务

2)若安装成功后还不存在".ssh"目录,则使用mkdir  .ssh   在家目录下新建一个.ssh目录

一般来说,多数系统在安装完ssh服务后,默认都会自动建立“ssh”隐藏目录,只有少数需要手动创建。

(2)Client端生成公钥和密钥

我们使用RSA密钥认证的目的是:从Client端登陆Server端时,不需要密码认证。

所以,我们在进行认证时首先需要在Client端建立属于Client端自己的一对密钥(公钥和私钥),建立方法如下:

在命令行下执行:ssh-keygen 

执行过程中,它先要求你确认保存公钥的位置(默认为:.ssh/id_rsa),

然后它会让你重复输入一个密码两次,如果不想在使用公钥的时候输入密码,可以留空

执行完毕后,就会生成数据Client端的一对密钥。

SSH 密钥默认储存在账户的家目录下的 ~/.ssh 目录中

关键是看有没有用 xxx_rsa 和 xxx_rsa.pub 来命名的一对文件,有 .pub 后缀的文件就是公钥,另一个文件则是密钥。

生成的一对公私钥,顾名思义:公钥是公开的,不需要保密,而私钥是由个人自己持有,并且必须妥善保管和注意保密。

(3)将Client端的公钥添加到用于认证的Server端的公钥文件中

首先检查Server端需要认证的zyp用户的家目录下,隐藏目录“ssh”目录下是否存在一个名为“authorized_keys”的文件,

若不存在,使用命令:touch authorized_keys 创建一个空文件

创建完成后,则可以执行如下步骤:

执行步骤如下:

1)将Clinet端公钥的内容复制

2)将复制到的Client端公钥内容,粘贴至Server端刚才创建的 authorized_keys 文件中,保存文件。

3)更改 authorized_keys 文件的权限

执行命令:chmod 600  authorized_keys

Client公钥内容格式大概如下:

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCzKGjCrHNCPCT96TTl8j1UtJ10V9a3fLIdx6R0upKP2N7FJP82Nni/vmAx7UVDhUNCgyfyG5Y6wK8AK2hOGjKLfLdfyYPojwmx3MF8KTspZBmmYKbHWh6Aem4TskRmsHOSpWeqns7o3tle0Ln1GMmPpdFph/owa7vj5/JYSOCBX8c+gGFyJeAMHGTs1fnHhGZRl5mzu8mWIv+qJnDxRmE/jBtuNXzSrPeZ2Cz86U+DfWtXVRyEl9XoIotX+GZ/zPxvPoMoItWD3UL6aA8McCX/PE7BLFA4B1Nl+mefTVpHH39AqcyqkcAJxntoqeNU3IwaM7sx/J7ONrFxp9Z3fjVR
[email protected]

(4)验证无密码登陆

在Client端命令行执行如下命令:

ssh -p12  [email protected]     (本例ssh服务开在了12端口,默认为22)

直接登陆至Server端,表示验证成功。

(5)回顾一下简要的步骤

配置SSH无密码登录,大概需要3步:

1.生成公钥和私钥

    2.导入公钥到认证文件,更改权限

    3.测试

1.生成公钥和私钥,Shell代码 :

  ssh-keygen -t rsa

默认在 ~/.ssh目录生成两个文件:

id_rsa      :私钥

id_rsa.pub  :公钥

2.导入公钥到认证文件,更改权限

2.1 导入本机 Shell代码 :

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys  

2.2 导入要免密码登录的服务器

首先将公钥复制到服务器,Shell代码:

scp ~/.ssh/id_rsa.pub [email protected]:/home/xxx/id_rsa.pub

然后,将公钥导入到认证文件,这一步的操作在服务器上进行,Shell代码:

cat ~/id_rsa.pub >> ~/.ssh/authorized_keys 

2.3 在服务器上更改权限,Shell代码:

    chmod 700 ~/.ssh

    chmod 600 ~/.ssh/authorized_keys

3.测试

ssh host,第一次登录可能需要yes确认,之后就可以直接登录了。

4,可以直接执行命令

ssh 10.207.139.62 ‘hostname‘

以上参考自:http://www.cnblogs.com/shuaiwhu/archive/2010/08/24/2065091.html 和 http://chenlb.iteye.com/blog/211809

时间: 2024-12-09 15:01:44

配置SSH无密码访问的相关文章

linux 集群配置ssh无密码访问

一.修改host文件 1) 用客户端工具(ssh client或者putty)连接到linux服务器.在root用户下输入命令 vi /etc/hosts,用vi编辑hosts文件,如下: #127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 #::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 192.1

配置Linux主机SSH无密码访问

通过证书签名达到Linux主机SSH无密码访问,使用ssh-keygen与ssh-copy-id来实现快速证书的生成及公钥下发,其中ssh-keygen生成一对密钥,使用ssh-copy-id来下发生成的公钥.具体操作如下: 在主机A(192.168.0.100)创建密钥,执行: ssh-keygen -t rsa ,有询问直接按回车键即可,将在/root/.ssh/下生成一对密钥,其中id_rsz为私钥,id_rsa.pub为公钥(需要下发到B主机用户.ssh目录,同时要求重名成authori

Linux ssh无密码访问 利用密钥对

Linux ssh无密码访问 #如果密钥密码回车两次,密钥密码为空,采用ssh登录就不需要输入密钥密码,ssh [email protected]回车即可进入9.80,做到第二步即可实现目的.如果密钥自己设的有密码,想实现无密码登录可以看第三步. 服务器 s 客户端 c   s用的192.168.9.22   c用的192.168.9.80 1.生成密钥对,简便起见,在c上来生成,以下操作我用的都是root,你也可以用普通用户 [[email protected] ~]# ssh-keygen

配置 ssh无密码登陆

首先确保 linux系统中已经安装了ssh,否则先安装 ssh,ubuntu 系统可以执行 sudo apt-get install ssh 接下来开始配置 ssh无密码登陆 确保在 /home/user用户目录下存在.ssh目录,可以使用一下命令进行查看 ls -a /home/user 如果不存在可以自己手动创建一个 mkdir /home/user/.ssh 接下来没输入命令: ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa 解释一下: ssh-keyge

SSH 无密码访问其它机器 和 Windows 上 putty 无密码访问 Linux 机器

1. 从一台 Linux 机器(ubuntu1)上无密码访问其它机器(ubuntu2) (1)登录 ubuntu1 并切换到用户比如 s1 (2)运行 ssh-keygen -t rsa (3)运行cd .ssh (4)运行 cat id_rsa.pub >> authorized_keys.现在运行  ssh localhost 就可以无密码登录到本机. (5)运行 scp authorized_keys [email protected]:/home/s1/.ssh/authorized_

CentOS配置ssh无密码登录

前提配置:使用root登录修改配置文件:/etc/ssh/sshd_config,将其中三行的注释去掉,如下: 然后重启ssh服务:service sshd restart.最后退出root,以下所有操作都在hadoop用户下进行. 主机信息如下: 如上图,当前登录用户为hadoop,主机名为slave.hadoop,与master.hadoop主机的网络是通畅的. 当前未配置RSA校验的情况下,用ssh连接主机是需要输入密码的,如下: 如上图,执行ssh master.hadoop后会停留在下

Hadoop之——CentOS配置ssh无密码登录注意事项

转载请注明出处:http://blog.csdn.net/l1028386804/article/details/46388809 前提配置:使用root登录修改配置文件:/etc/ssh/sshd_config,将其中三行的注释去掉,如下 然后重启ssh服务:service sshd restart.最后退出root,以下所有操作都在hadoop用户下进行. 主机信息如下: 如上图,当前登录用户为hadoop,主机名为slave.hadoop,与master.hadoop主机的网络是通畅的.

普通用户之间的ssh无密码访问设置方法

两台CentOS6.2服务器,客户端是node1,服务器是node2,先都用root用户配置,方法如下: 第一步:在客户端Node1:生成密匙对,我用的是rsa的密钥.使用命令 "ssh-keygen -t rsa" 生成的过程中提示输入密钥对保存位置,直接回车,接受默认值就行了.接着会提示输入一个不同于你的password的密码,直接回车,让它空着. 其中公共密钥保存在 ~/.ssh/id_rsa.pub私有密钥保存在 ~/.ssh/id_rsa 之后把这个密钥对中的公共密钥复制到你

配置SSH隧道访问Ubuntu服务器上的MongoDB

为了数据安全,在MongoDB的配置文件里,一般会把默认的27017端口port改为自定义的端口号,然后把允许访问的IP设为127.0.0.1(即主机本身).但是这样就会在开发的过程查看数据时带来麻烦,必须去服务器端或调用部署在服务器的API接口才能很好地可视化地查询数据.为了能在客户端也能使用可视化工具,可以建立一条SSH隧道,直接在客户端访问远程服务器的数据库. 本文例子基于以下开发环境: 服务器端:Ubuntu 16.04 x86_64,MongoDB 3.4.6 客户端:Windows1