`
san_yun
  • 浏览: 2653259 次
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

SSH免密码远程登录设置

 
阅读更多

 

由于这几天需要写一个线上日志查询的小系统。打算使用ssh远程登录进行相关log文件的操作。 为了操作的方便,就找了一个ssh的java实现 jsch http://www.jcraft.com/jsch/ 然后写了一些代码进行测试。 后来发现实际环境中,需要通过 public key 的方式进行ssh的登录验证。 所以我在测试环境上需要配置下。

这里写一下配置的过程。 假设有A机器和B机器,A机器通过非密码的方式登录B机器,

1.生成密钥对

这个时候我们来到A机器进行相关操作 一般情况下,我们的公钥私钥都是放在 ~/.ssh目录下的 如果没有的话,需要自己生成,

luke@luke-desktop:~/.ssh$ 

ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (

/home/luke/.ssh/id_rsa)

:
Enter passphrase (

empty for 

no passphrase)

:
Enter same passphrase again:
Your identification has been saved in /home/luke/.ssh/id_rsa.
Your public key has been saved in /home/luke/.ssh/id_rsa.pub.
The key fingerprint is:
9a:34:fd:c6:9f:3d:81:f5:be:f1:e5:df:a1:25:bb:2c luke@luke-desktop
The key'

s randomart image is:
+--[

 RSA 2048]

----+
|                 |
|                 |
|                 |
|       .      .  |
|      o S    o . |
|     . + o  . . .|
|      o   +  . *.|
|         . E.o*.B|
|            +=

ooB|
+-----------------+
luke@luke-desktop:~/.ssh$ 

ls
id_rsa  id_rsa.pub  known_hosts


其中id_rsa为私钥 id_rsa.pub为公钥,

至于known_hosts文件,它是用来保存以前远程登录过的主机的公钥的

2.在远程机器中添加本地机器的公钥

现在我们需要做的是将A机器的公钥加入到B机器的authorized_keys文件中(可以直接拷贝粘贴,如果 authorized_keys文件不存在的话,就在B机器中新建~/.ssh/authorized_keys),然后开启开启B机器的 PubkeyAuthentication的选项

vi /etc/ssh/sshd_config
设置下面的选项:
PubkeyAuthentication yes
重启sshd service sshd restart

这个时候就可以在A机器上ssh登录B 机器了,现在不需要输入用户对应的linux密码了,但是需要输入创建私钥的时候所输入的passphrase,但是这个密码无须在网络上进行传输了。

3.使用ssh-add

我们可以通过ssh-add命令将私钥的密码交给ssh-agent进行管理,这样我们登录远程机器的时候,就会直接使用缓存起来的passphrase,而不会让你每次手动的输入。

4.其他

一开始发现,本机登录远程机器在登录的时候相当慢,后来发现和两个选项有关

#GSSAPIAuthentication yes


UseDNS no


还有一个有点悲剧的事情就是我为了重新验证设置的正确性,将本地的密钥对全部删除后,重新生成了一对,结果发现服务器端被我限死成公钥方式的登录, 我一想,这下可彻底的悲剧了,登录不了阿。不过灵机一动,翻出以前的一个邮件,有一个系统急救的方法,就是通过一个跳板机器,然后vnc直接连如XEN虚 拟机,然后在公钥验证的下面将密码验证方式设置为yes,重启sshd服务,然后重启从本地登录,重复上面的设置过程,恩,虚惊一场阿,不过下次修改删除 操作还是先做好备份才靠谱。

 

 

补充,还可以更简单一些:

.ssh/config

HOST s*
User admin
Port 22

 

/etc/hosts:

192.168.172.12  s11.duitang.com s11

 

 

问题记录:

 

現在的 ssh 使用同樣的方法會出現錯誤訊息

Agent admitted failure to sign using the key


解決方式 使用 ssh-add 指令將私鑰 加進來 (根据个人的密匙命名不同更改 id_rsa)
# ssh-add   ~/.ssh/id_rsa 

 

分享到:
评论

相关推荐

    Hadoop SSH免密码登录以及失败解决方案

    本文将详细介绍如何设置Hadoop SSH免密码登录,并提供解决登录失败问题的方法。 1. **创建SSH密钥对** 使用`ssh-keygen`命令生成RSA类型的密钥对。执行以下命令: ``` ssh-keygen -t rsa -f ~/.ssh/id_rsa ``...

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

    ### Linux系统的SSH免密码登录机制原理及实现范例 #### 一、SSH免密码登录机制原理 SSH(Secure Shell)是一种网络协议,用于计算机之间的加密登录。它可以在不安全的网络上提供一种安全的远程登录方法。对于经常...

    ssh免密码登录

    ### SSH免密码登录详解 #### 一、简介 在日常运维工作中,经常需要在多台服务器之间进行频繁的SSH连接操作。为了提高工作效率并减少密码输入的繁琐过程,实现SSH免密码登录是一种非常实用的方法。本文将详细介绍...

    ssh通讯协议及ssh免密码登录的配置

    SSH 通讯协议及 SSH 免密码登录的配置 SSH(Secure Shell)是一种通讯协议,可以实现远程安全登录。OpenSSH 是 SSH 远程安全登录的开源实现。本文将介绍 SSH 远程安全登录的工作原理、免密码登录的配置、scp 远程...

    Linux配置ssh免密码登录

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

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

    本文将详细解释如何在Linux系统中设置SSH免密码登录。 首先,我们要理解SSH免密码登录的基本原理。这依赖于SSH密钥对,即一个公钥和一个私钥。公钥存储在远程服务器上,而私钥保留在本地机器上。当本地机器尝试连接...

    WINSCP-SFTP SSH免密码登录

    **标题解析:** "WINSCP-SFTP SSH免密码登录" 指的是使用WINSCP工具通过SFTP(Secure File Transfer Protocol)协议,并利用SSH(Secure Shell)进行安全连接,实现无需手动输入密码的自动化登录。 **描述解析:** ...

    SSH无密码登录配置(主要针对Hadoop配置)

    SSH(Secure Shell)是一种网络协议,用于在不安全的网络上提供安全的远程登录和其他服务。在Hadoop这样的分布式计算环境中,SSH无密码登录配置至关重要,因为它简化了节点间的通信,提高了运维效率。以下是关于SSH...

    SSH 免密码登陆

    SSH 免密码登陆 SSH 免密码登陆是一种实现远程服务器之间免密码登陆的技术,通过使用密钥对来代替密码认证。...SSH 免密码登陆是一种安全、高效的远程登录方式,通过正确地生成和使用密钥对,可以实现免密码登陆。

    dropbear实现免密码ssh登录方法

    - **免密码登录**:通过事先设置好的公钥-私钥对来认证用户身份,从而实现无需手动输入密码即可完成SSH登录的过程。 #### 三、实现步骤 1. **准备环境**:确保客户端和服务端均已安装Dropbear。 2. **清除原有配置*...

    详解SSH如何配置key免密码登录

    通过SSH,可以在非安全的网络环境中提供安全的远程登录服务,其安全性主要依靠密钥对进行验证。 在SSH中,每个用户都会有一对密钥:公钥和私钥。公钥可以被分发给其他人或机器,而私钥则由用户妥善保存。当用户尝试...

    expect配置单向ssh免密码登录

    为了解决这个问题,我们可以使用`expect`工具来配置SSH单向免密码登录。`expect`是Tcl语言的一个扩展,它能够自动应答交互式程序,如SSH登录过程中的密码提示。 首先,我们来理解SSH密钥对的生成和使用。SSH密钥对...

    两个SSH2间免密码登录

    ### 两个SSH2间免密码登录配置详解 #### 背景介绍 SSH(Secure Shell)是一种网络协议,用于计算机之间的加密登录。SSH2作为SSH的一个版本,提供了更安全的数据传输方式。本文主要讨论SSH2环境下实现两台机器之间免...

    postgres用户下ssh无密码登录

    SSH(Secure Shell)是一种安全的远程登录协议,用于远程管理Linux系统。 SSH无密码登录是指在两台服务器之间,不需要输入密码便可实现登录的功能。本文将详细介绍Postgres用户下SSH无密码登录的实现方法。 一、...

    ssh 免密码登陆方法

    ssh 免密码登陆方法 在 Linux 服务器中实现免密码登陆是非常有用的,特别是在集群环境中,需要在多个节点之间实现自动化登陆。下面我们将详细介绍如何使用 SSH 实现免密码登陆。 SSH 免密码登陆的原理 SSH...

    虚拟机VMware下centos配置SSH免密码登陆

    在虚拟机VMware中配置CentOS系统实现SSH免密码登陆,可以极大地提高工作效率,减少手动输入密码的繁琐步骤。以下将详细介绍如何在两个CentOS系统之间配置SSH免密码登陆。 首先,我们需要了解SSH的基本原理。SSH通过...

    SSH2免密码登录OpenSSH

    ### SSH2与OpenSSH免密码登录详解 #### 一、确定SSH版本 为了明确当前使用的SSH版本是SSH2还是OpenSSH,可以通过简单的命令行来判断。执行`ssh -V`命令,根据输出的信息来确定: - **SSH2**: 如果显示为`SSH ...

    Linux 安装及SSH免密码设置

    在IT领域,Linux操作系统是广泛应用于服务器、云计算和开发环境的重要平台。...以上就是Linux的安装步骤和SSH免密码设置方法,对于远程管理和运维工作非常实用。通过这些知识,你可以更高效地管理你的Linux系统。

    免密码自动登录SSH(免密登陆SSH)_Shell_下载.zip

    本教程将详细解释如何实现SSH免密码登录,并以`autossh`为例,介绍一个用于保持SSH连接的工具。 首先,我们需要理解SSH的基础知识。SSH(Secure Shell)是一种网络协议,用于安全地远程控制和传输数据。默认情况下...

Global site tag (gtag.js) - Google Analytics