`
tianyihuyidao9
  • 浏览: 165942 次
  • 性别: Icon_minigender_1
  • 来自: 济南
文章分类
社区版块
存档分类
最新评论

设置ssh无密码登录

 
阅读更多
利用ssh-keygen来设置ssh无密码登录 

2011-03-21 17:33:10|  分类: linux 应用 |  标签:ssh   |字号 订阅

客户做安全检查,认为telnet和rsh均有安全漏洞,要求整改所有系统的访问方式为ssh方式(其实,无论这些安全检查的人员还是客户都不明白不安全的意义是什么?)。

传统的网络服务程序,如FTP、POP和Telnet其本质上都是不安全的;因为它们在网络上用明文传送数据、用户帐号和用户口令,很容易受到中间人(man-in-the-middle)攻击方式的攻击。就是存在另一个人或者一台机器冒充真正的服务器接收用户传给服务器的数据,然后再冒充用户把数据传给真正的服务器。或者使用网络抓包工具进行数据分析,据说可以分析出用户密码等资料。

ssh是专为远程登录会话和其他网络服务提供安全性的协议。利用SSH协议可以有效防止远程管理过程中的信息泄露问题。而且ssh传输数据过程是经过压缩的,也就可以在一定程度上缓解网络压力。

这就遇到一个问题,那就是大量脚本使用rsh方式调用,修改ssh后要求脚本运行以及其他各系统间切换均需要避免密码输入和ssh认证。否则十几台机器,甚至几十台几百台机器的日常巡检和问题定位将受到灾难性的打击。

1. 创建公钥信息:
#ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (<UseHome>/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in <UseHome>/.ssh/id_rsa.
Your public key has been saved in <UseHome>.ssh/id_rsa.pub.
The key fingerprint is:
ba:2c:77:eb:6d:aa:aa:d8:37:08:2f:b1:b9:e8:5a:2f <UseName>@<HostName>

输入后,会提示创建.ssh/id_rsa、id_rsa.pub的文件,其中第一个为密钥,第二个为公钥。过程中会要求输入密码,为了ssh访问过程无须密码,可以直接回车

2. 部署信息
拷贝id_rsa.pub中的内容到需要访问的主机,并建立~/.ssh/authorized_keys文件,将先前的id_rsa.pub拷贝到目标机。
cat ~/.ssh/authorized_keys
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAxhdf+JIMlwvtUML8Xe74A1SXDIVn4Evv1HjxoxJQPmzAzq5ZdADsfKLwD/amPLlLDycNJWp/qCghF9DgIDK72+0Ze/PF+Fqyy8Ii8a/Qi7rIKw/j5xk8cBmT9uUDYaksnrgbP
wbFo7QMTAt3yJG+64410vj0qRTZz+361Vc32hAzqIYwRlse7NMsvaAPzKqs3RtSg+TsBuKxPTDMKe71MH0fb6UsduLZ4+nLOi3J7Fhck6erE67+rmOK/4D0M+FTF699nAsvusUMu2bs0MV7zFgrNb+PLma5+uaKYT4JMeM4PRsj9TOaik
evGe077LY0wrnslaW/PNHjFYBxghY2tQ== <UseName>@<HostName>


3. ssh访问
使用ssh <IP/HOSTNAME>进行访问,第一次需要保存ssh认证信息,以后则可以自动登录,其他相关ssh相关程序诸如scp等也可以无需密码

# ssh <TargetHost>
The authenticity of host '<TargetHost> (<TargetIP>)' can't be established.
RSA key fingerprint is 34:b9:92:06:53:e6:91:4d:47:92:73:57:78:6a:5d:09.
Are you sure you want to continue connecting (yes/no)?yes
Warning: Permanently added '<TargetHost>,<TargetIP>' (RSA) to the list of known hosts.

这是因为首次访问后,ssh会在.ssh/known_hosts中保存各个认证过的主机信息:
# cat ~/.ssh/known_hosts
<HostName>,<HostIP> ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA6bRsr8LI8qg/kW8RvW2BaEXwKMURzpkl0FRKnH2cm460wPNGqH33RyrIY8lT23If0ZuT7gOAuz57d5GXAawl+NCFmkl2VH+lKJuma89xCGuMU0dbAcrl
chWDk554TEMm1WwiQ/fJdJKdr0ZkNVanDNoIxQuIOEoEzO0Auwr3OvXIaSM+exuLQa3v8hhiefZTtzC3Rc9jVJj0w3CiV/82qhBwXNjNVy/WFoFLZsJ8IsgoH8EnlhL8GBpoAMmdPNUsMpjYqfayHY+17i5zRhabG5ayXc2MeJs6yWMx1
0HH0kLbepUMX/eralAWp69nPvEsK8v4cpjeJfXa/uF/DIo/lQ==

4. 多机器部署
根据部署情况可以发现实际上部署简单,但是多一台机器实际上就多了一个阶乘的操作次数。根据原理可以简化部署方案,比如
a) 先全部机器独立运行ssh-keygen -t rsa
b) 输出所有机器的id_rsa.pub到独立文件
c) 将所有id_rsa.pub信息部署到所有机器的authorized_keys文件中
d) 激活一台机到所有目标机器的访问,包括对自己的,使known_hosts文件中包括所有维护主机信息
e) 传递known_hosts到所有主机对应位置。
这一些的操作最好在rsh没有被禁用前部署和调整,可以减轻很多手工操作

限制ip登录:
[root@localhost mobihq]# cat /etc/hosts.allow
#
# hosts.allow This file describes the names of the hosts which are
# allowed to use the local INET services, as decided
# by the '/usr/sbin/tcpd' server.
#
sshd:120.193.9.:allow
sshd:192.168.3.:allow
sshd:120.193.10.:allow
sshd:210.51.244.:allow
sshd:211.138.113.:allow
sshd:211.141.86.:allow
sshd:211.141.110.:allow
sshd:211.90.246.:allow
sshd:221.130.58.50:allow
sshd:all:deny
[root@localhost mobihq]#
分享到:
评论

相关推荐

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

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

    postgres用户下ssh无密码登录

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

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

    Linux系统SSH无密码登录设置手册 1. 引言 SSH(Secure Shell)是一种网络协议,用于在不安全的网络环境中提供安全的远程登录和其他网络服务。它通过加密技术保护数据传输,使得管理员可以在不同主机间进行无密码...

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

    在Hadoop这样的分布式计算环境中,SSH无密码登录配置至关重要,因为它简化了节点间的通信,提高了运维效率。以下是关于SSH无密码登录配置的详细解释。 **一、SSH原理** SSH通过加密网络数据流,确保在非安全网络上...

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

    设置SSH无密码登录通常包括以下步骤: 1. 在本地生成SSH密钥对,使用`ssh-keygen`命令。 2. 将本地的公钥复制到远程服务器,可以使用`ssh-copy-id`命令。 3. 配置远程服务器的`~/.ssh/authorized_keys`文件权限,...

    SSH无密码登录

    以上步骤利用了PuTTY工具来设置SSH无密码登录,适用于Windows用户。除此之外,还有其他工具或方法可以实现SSH无密码登录,例如使用OpenSSH在Linux和Unix系统中,通过同样的密钥对机制,但操作过程和界面略有不同。 ...

    ssh无密码登录

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

    批量实现ssh无密码登录

    本文将详细介绍如何在CentOS环境下批量设置多台服务器之间的SSH无密码登录。 #### 基础概念解释 - **SSH (Secure Shell)**: 一种网络协议,用于计算机之间的加密登录。它为远程登录提供了安全的连接。 - **公私钥对...

    使用TortoiseGit时如何实现SSH免密码登录

    ### 使用TortoiseGit实现SSH免密码登录的详细步骤 #### 一、背景介绍 在日常的开发工作中,很多团队都会使用版本控制系统如Git来进行代码管理。为了方便开发者之间的协作,通常会选择部署一个版本服务器(如GitLab...

    两台机器之间的SSH无密码登陆

    ssh无密码登录,关键的是设置权限,防火墙的关闭

    设置ssh无密码登录linux服务器的方法

    每次登录测试服务器,ssh登录总是需要输入密码。登录的少还行,登录的多了,多一行命令都是多余的。 rsa认证登录方式 制作密钥对 在客户端(本地机器)终端下输入以下命令 ssh-keygen -t [rsa|dsa] rsa和dsa代表...

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

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

    linuxssh无密码登陆

    在Linux系统中,SSH无密码登录可以提高自动化运维的效率,避免每次连接时输入密码的繁琐步骤。以下是实现SSH无密码登录的详细步骤: 1. **生成密钥对**: 首先,在需要进行无密码登录的主机上,运行`ssh-keygen -t...

    Ubuntu创建用户、设置密码、设置SSH远程秘钥登录.docx

    Ubuntu 创建用户、设置密码、设置 SSH 远程秘钥登录 本文主要讲解如何在 Ubuntu 操作系统中创建用户、设置密码、设置 SSH 远程秘钥登录的详细步骤。 创建用户 在 Ubuntu 中创建用户需要使用 `useradd` 命令,格式...

    ssh免密码登录

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

    Linux系统SSH无密码登录配置

    **Linux SSH无密码登录配置详解** 在Linux系统中,SSH(Secure Shell)是一种安全的网络协议,用于在不安全的网络环境中提供加密的远程登录和其他网络服务。在Hadoop集群服务器节点之间,为了方便管理和提高效率,...

    030102设置ssh互信及无密码登录

    本篇文章将详细讲解如何设置SSH互信及实现无密码登录,特别针对RedHat Linux操作系统。 首先,我们了解基本步骤: 1. **生成SSH密钥对**: 在主机A上,以用户名`user`登录,执行`ssh-keygen -t rsa`命令,这将...

    SCP 无密码登录 ssh 无密码登录 IPTALE 使用

    SCP 无密码登录 ssh 无密码登录 IPTALE 使用

Global site tag (gtag.js) - Google Analytics