`
wangxiaohigh
  • 浏览: 1496418 次
文章分类
社区版块
存档分类
最新评论

Linux实现SSH无密码登录

 
阅读更多

假设服务器 IP 地址为 192.168.1.1 ,机器名: cluster.hpc.org

客户端 IP 地址为 172.16.16.1 ,机器名: p470-2.wangrx.sioc.ac.cn

客户端用户 yzhao 需要使用 ssh 无密码登录服务器的 zhaoy 帐户

实现原理

使用一种被称为"公私钥"认证的方式来进行ssh登录. "公私钥"认证方式简单的解释是

  • 首先在客户端上 创建一对公私钥 (公钥文件: ~/.ssh/id_rsa.pub 私钥文件: ~/.ssh/id_rsa
  • 然后把公钥放到服务器上 ~/.ssh/authorized_keys , 自己保留好私钥
  • 当ssh登录时,ssh程序会发送私钥去和服务器上的公钥做匹配.如果匹配成功就可以登录了

设置如下:

1 、以 yzhao 用户登录客户机器并在客户端机器上执行 "ssh-keygen -t rsa"

( 注:每次执行 "ssh-keygen -t rsa" 产生的私钥文件都会不同 )

a )如果文件 "~/.ssh/id_rsa" 存在,会提示是否覆盖该文件,此时可选择 "n" 不覆盖该文件而使用已有的 id_rsa 文件;如果选择 "y" 则会重新生成 "~/.ssh/id_rsa" 文件,接下来会提示输入 passphrase ,回车确定使用空的 passphrase ,再次回车确认(这里也可以输出 passphrase ,相当于 ssh 时登录的密码)。然后会重新生成 "~/.ssh/id_rsa" 文件和 "~/.ssh/id_rsa.pub" 文件(结果如下)。

[yzhao@p470-2 ~]$ ssh-keygen -t rsa

Generating public/private rsa key pair.

Enter file in which to save the key (/disk2/yzhao/.ssh/id_rsa):

/disk2/yzhao/.ssh/id_rsa already exists.

Overwrite (y/n)? y

Enter passphrase (empty for no passphrase):

Enter same passphrase again:

Your identification has been saved in /disk2/yzhao/.ssh/id_rsa.

Your public key has been saved in /disk2/yzhao/.ssh/id_rsa.pub.

The key fingerprint is:

6d:a1:17:8a:b6:d2:c0:a1:6c:66:ba:85:0b:7b:9f:0c yzhao@p470-2.wangrx.sioc.ac.cn

b )如果 "~/.ssh/id_rsa" 文件和 "~/.ssh/id_rsa.pub" 文件不存在则会自动创建新的 "~/.ssh/id_rsa" 文件和 "~/.ssh/id_rsa.pub" 文件, passphrase 设置同上。

[yzhao@p470-2 ~]$ ssh-keygen -t rsa

Generating public/private rsa key pair.

Enter file in which to save the key (/disk2/yzhao/.ssh/id_rsa):

Created directory '/disk2/yzhao/.ssh'.

Enter passphrase (empty for no passphrase):

Enter same passphrase again:

Your identification has been saved in /disk2/yzhao/.ssh/id_rsa.

Your public key has been saved in /disk2/yzhao/.ssh/id_rsa.pub.

The key fingerprint is:

54:49:ad:33:b3:ff:71:da:6d:db:78:d0:bb:6a:15:bc yzhao@p470-2.wangrx.sioc.ac.cn

2 、使用 ssh zhaoy@192.168.1.1 登录到服务器,编辑服务器上 "~/.ssh/authorized_keys" 文件,将客户端机器上的 "~/.ssh/id_rsa.pub" 文件内容追加到 "~/.ssh/authorized_keys" 文件中。

(注:可以在客户端机器上使用以下命令来实现:

cat ~ /.ssh/ id_rsa .pub | ssh zhaoy@ 192.168.1. 1 "cat - >> ~/.ssh/authorized_keys"


cat /root/.ssh/id_rsa.pub|ssh root@192.168.2.168 "cat - >> /root/.ssh/authorized_keys"


此时会要求输入 zhaoy 在服务器上的登录密码,输入后即会将客户端机器上的 "~/.ssh/id_rsa.pub" 文件内容追加到服务器上的 "~/.ssh/authorized_keys" 文件中)

如果是首次连接服务器会出现以下的提示,确认连接并输入密码后其他直接回车确定。

[yzhao@p470-2 ~]$ ssh zhaoy@192.168.1.1

The authenticity of host '192.168.1.1 (192.168.1.1)' can't be established.

RSA key fingerprint is 94:91:33:01:6b:e7:10:ae:42:ac:ea:5c:8c:bb:f1:18.

Are you sure you want to continue connecting (yes/no)? yes

Warning: Permanently added '192.168.1.1' (RSA) to the list of known hosts.

zhaoy@192.168.1.1's password:

Last login: Fri Dec 21 17:41:38 2007 from 172.16.16.1

Rocks 4.2.1 (Cydonia)

Profile built 03:58 21-Jun-2007

Kickstarted 12:25 21-Jun-2007

Rocks Frontend Node - Our Cluster Cluster

It doesn't appear that you have set up your ssh key.

This process will make the files:

/home/zhaoy/.ssh/id_rsa.pub

/home/zhaoy/.ssh/id_rsa

/home/zhaoy/.ssh/authorized_keys

Generating public/private rsa key pair.

Enter file in which to save the key (/home/zhaoy/.ssh/id_rsa):

Created directory '/home/zhaoy/.ssh'.

Enter passphrase (empty for no passphrase):

Enter same passphrase again:

Your identification has been saved in /home/zhaoy/.ssh/id_rsa.

Your public key has been saved in /home/zhaoy/.ssh/id_rsa.pub.

The key fingerprint is:

7e:f6:ab:b0:79:70:cb:c9:f7:40:37:aa:10:4d:4a:ac zhaoy@cluster.hpc.org

3 、如果在第 1 步中 使用了空的passphrase ,则可以跳过第 4 步,此时在客户端即可以使用 "ssh zhaoy@192.168.1.1" 即可无密码登录到服务器;如果第一步中设置了 passphrase ,则继续执行以下步骤。

4 如果第 1 步中设置了 passphrase ,则此时需要输入该 passphrase 登录服务器。 此时 前面我们把输入密码变成了输入passphrase 这没有带来任何方便 但是 我们可以通过 ssh-agent 来帮助我们自动输入 passphrase(只是看起来像是自动输入而已) 我们只要 在第一次登录时 输入一次passphrase, 以后的工作就可以交给ssh-agent 。在客户端机器上执行命令 ssh-add 这里会提示输入一次passphrase 。输入第一步中设置的 passphrase 之后会修改 "~/ .ssh / id_rsa " 文件。再在客户端执行 "ssh zhaoy@192.168.1.1" 即可无密码登录到服务器端。

[yzhao@p470-2 ~]$ ssh-add

Enter passphrase for /disk2/yzhao/.ssh/id_rsa:

Identity added: /disk2/yzhao/.ssh/id_rsa (/disk2/yzhao/.ssh/id_rsa)

[yzhao@p470-2 ~]$ ssh zhaoy@192.168.1.1

Last login: Fri Dec 21 17:55:38 2007 from 172.16.16.1

Rocks 4.2.1 (Cydonia)

Profile built 03:58 21-Jun-2007

Kickstarted 12:25 21-Jun-2007

Rocks Frontend Node - Our Cluster Cluster

[zhaoy@cluster ~]$

分享到:
评论

相关推荐

    linux下怎样设置ssh无密码登录.docx

    Linux 下设置 SSH 无密码登录 Linux 是一个流行的开源操作系统, SSH(Secure Shell)是 Linux 中的一种安全协议,允许用户远程登录到 Linux 服务器并执行命令。设置 SSH 无密码登录可以提高 Linux 服务器的安全性...

    postgres用户下ssh无密码登录

    在Postgres用户下实现SSH无密码登录,需要修改SSH配置文件。首先,需要修改/etc/ssh/sshd_config文件,添加以下配置: RSAAuthentication yes PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keys ...

    Linux系统SSH无密码登录配置

    **Linux SSH无密码登录配置详解**...通过以上步骤,你可以在Hadoop集群服务器节点之间实现SSH无密码登录,从而简化管理任务,提高运维效率。但请始终记住,安全是首要考虑的因素,合理设置权限和策略可以确保系统安全。

    Linux配置ssh免密码登录

    ### Linux配置SSH免密码登录详解 #### 一、引言 在进行分布式系统如Hadoop集群的搭建过程中,为了提高效率并确保数据的安全性,通常需要实现节点间的免密码登录。这种方式通过使用SSH (Secure Shell) 的公钥/私钥...

    Linux系统ssh无密码登录设置手册.docx

    本手册将详细介绍如何在Linux系统中设置SSH无密码登录,旨在帮助用户实现快速、便捷且安全的系统管理。 1.1 目的 本手册的主要目的是教给读者如何配置SSH服务,以便在Linux主机之间进行免密登录,减少手动输入密码...

    linux系统的ssh免密码登录机制原理及实现范例

    为了提高效率和简化管理,常常需要在这些节点之间实现SSH免密码登录。 ##### 3.1 实现步骤 1. **在每个节点上生成密钥对**。 2. **复制其他节点的公钥**。 3. **将公钥添加到各节点的`authorized_keys`文件中**。 ...

    linuxssh无密码登陆

    以下是实现SSH无密码登录的详细步骤: 1. **生成密钥对**: 首先,在需要进行无密码登录的主机上,运行`ssh-keygen -t rsa`命令生成RSA类型的密钥对。这个过程会提示你保存私钥的文件路径,默认为`~/.ssh/id_rsa`...

    Linux系统ssh无密码登录设置手册.pdf

    Linux操作系统中的SSH服务,默认使用OpenSSH套件,可实现安全的无密码登录,方便管理员进行管理和维护。 无密码登录是通过SSH密钥认证来实现的,通常涉及两个密钥:私钥(id_rsa)和公钥(id_rsa.pub)。公钥需要被...

    Linux系统 ssh登录不需要密码

    首先,要实现SSH免密登录,你需要在本地机器上生成一对密钥,包括私钥(id_rsa)和公钥(id_rsa.pub)。这个过程可以通过执行以下命令完成: ```bash ssh-keygen -t rsa -b 1024 ``` 这将生成一个2048位的RSA密钥...

    linux实现vnc无密码登录

    标题提到的“linux实现vnc无密码登录”就是针对这种需求的一种解决方案,特别是通过修改turbo VNC的源代码来实现。 Turbo VNC是一款优化过的VNC服务器,它在保持低延迟的同时提供更好的性能。在标准的VNC设置中,...

    ssh无密码登录

    在linux上实现几台机ssh无密码相互登录

    Linux_SSH配置和禁止Root远程登陆设置文档

    本文将详细介绍如何在Linux环境下配置SSH服务,特别是如何修改默认端口、禁止Root远程登录,以及如何设置公钥认证,从而加强系统的安全性。 #### 二、配置SSH服务 ##### 1. 修改默认端口 SSH服务默认监听在TCP...

    服务器Centos集群上实现ssh无密码相互访问

    在CentOS服务器集群环境中实现SSH无密码登录是一种常见的操作需求,这有助于提高系统管理效率,并为自动化运维工具(如Ansible等)提供便利。本文将详细介绍如何在CentOS服务器集群上配置SSH免密码登录,并解决在...

    ssh免密码登录

    为了提高工作效率并减少密码输入的繁琐过程,实现SSH免密码登录是一种非常实用的方法。本文将详细介绍如何通过公钥认证机制来实现SSH免密码登录,并基于给定文件中的步骤进行具体说明。 #### 二、基本原理 SSH免...

    Linux系统下如何做到SSH免密码登录

    SSH免密码登录是Linux管理员常用的便捷功能,它允许用户在不同主机间进行身份验证时无需每次都输入密码,提高效率并减少手动输入密码带来的安全风险。本文将详细解释如何在Linux系统中设置SSH免密码登录。 首先,...

    dropbear实现免密码ssh登录方法

    ### dropbear实现免密码ssh登录方法 #### 一、引言 在IT运维与开发环境中,使用SSH(Secure Shell)协议进行远程管理是一项常见的需求。为了提高效率并减少人为输入密码的操作,通常会采用免密码登录的方式。...

    linux命令expect实现ssh登陆.docx

    这个脚本将自动将公钥复制到远程服务器,实现 SSH 无密码登陆。 Expect 的优点 ------------- Expect 有很多优点,例如: * 自动化脚本编写:Expect 可以自动化许多重复性的任务,例如自动化登录、文件传输、数据...

Global site tag (gtag.js) - Google Analytics