首先,在本地机器上产生公钥:
[root@localhost .ssh]# ssh-keygen -d 一直按回车键
Generating public/private dsa key pair.
Enter file in which to save the key (/root/.ssh/id_dsa):
/root/.ssh/id_dsa already exists.
Overwrite (y/n)? y
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_dsa.
Your public key has been saved in /root/.ssh/id_dsa.pub.
The key fingerprint is:
89:77:aa:a2:d8:31:35:1e:3a:34:9e:b9:da:ea:62:34 root@localhost.localdomain
[root@localhost .ssh]#
然后把产生的公钥传到想要登陆的远程机器上,如果是root用户登陆远程的话,把公钥放在/root/.sshd目录下面。
[root@localhost .ssh]# scp /root/.ssh/id_dsa.pub root@192.168.0.60:/root/.ssh/
root@192.168.0.60's password: 需输入远程机器的登录密码
id_dsa.pub 100% 616 0.6KB/s 00:00
在远程的机器上修改该文件的名称:
[root@web1 .ssh]# mv id_dsa.pub authorized_keys
最终实现ssh的免密码登陆。
SSH免密码登陆效果:
[root@localhost .ssh]# ssh root@192.168.0.60
Last login: Tue Sep 27 09:03:10 2011 from 192.168.0.3
[root@web1 ~]#
=========================================================================================
二、多台服务器相互无密码访问
多台服务器相互无密码访问,与两台服务器单向无密码访问的原理是一样的,只不过由于是多台服务器之间相互无密码访问,不能象两台服务器无密码登录那样直接上传,步骤如下:
1、在每台服务器上都执行ssh-keygen -t rsa生成密钥对:
#ssh-keygen -t rsa
2、在每台服务器上生成密钥对后,将公钥复制到需要无密码登陆的服务器上:
举例如192.168.15.240,192.168.15.241,192.168.15.242这三台服务器需要做相互免密码登陆,在每台服务器生成密钥对后,在每台服务器上执行ssh-copy-id命令(具体说明及用法见最后附录),将公钥复制到其它两台服务器上(此处以192.168.15.240为例,用户为root,其它两台步骤相同)
#ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.15.241
#ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.15.242
以上命令,可以自动将公钥添加到名为authorized_keys的文件中,在每台服务器都执行完以上步骤后就可以实现多台服务器相互无密码登陆了
附ssh-copy-id介绍及用法:
Linux系统里缺省都包含一个名为ssh-copy-id的工具:
# type ssh-copy-id
ssh-copy-id is /usr/bin/ssh-copy-id
你用cat或者more命令看一下就知道ssh-copy-id本身其实就是一个shell脚本,用法很简单:
# ssh-copy-id -i ~/.ssh/id_rsa.pub user@server
再也不用记如何拼写authorized_keys这个文件名了,是不是很爽,可惜别高兴太早了,ssh-copy-id有一个很要命的问题,那就是缺省它仅仅支持SSH运行在22端口的情况,不过实际上出于安全的需要,我们往往都会更改服务器的SSH端口,比如说改成10022端口,这时候你运行ssh-copy-id就会报错了,直接修改ssh-copy-id脚本当然可以修正这个问题,但是那样显得太生硬了,实际上还有更好的办法:
# vi ~/.ssh/config
加上内容:
Host server
Hostname ip
Port 10022
你也可以单独只加入Port一行配置,那样就是一个全局配置,保存后再运行ssh-copy-id命令就不会报错了。
补充:经网友提示,如果端口不是22,不修改config文件,按如下方式也可以:
ssh-copy-id -i ~/.ssh/id_rsa.pub “-p 10022 user@server”
分享到:
相关推荐
将生成的公钥 id_dsa.pub 拷贝到服务器上的 `/root/.ssh/` 目录下,创建一个名为 `authorized_keys` 的文件,并将公钥的内容写入其中: ``` #touch /root/.ssh/authorized_keys #cat id_dsa.pub >> /root/.ssh/...
为了简化操作,管理员通常会配置SSH免密码登录,这样在不同节点间切换时无需反复输入密码。本文将详细介绍如何设置Hadoop SSH免密码登录,并提供解决登录失败问题的方法。 1. **创建SSH密钥对** 使用`ssh-keygen`...
ssh racnode2 'cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys' ``` 2. **分发Root用户的公钥**: - 同样地,在`racnode1`上为`root`用户完成此步骤。 ```bash cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized...
2. 公钥密钥对的组成部分:公钥密钥对由两个部分组成:私钥(id_dsa)和公钥(id_dsa.pub)。私钥用于身份验证,公钥用于加密和解密。 3. 密码短语(Passphrase):在生成公钥密钥对时,会被询问输入密码短语。密码...
SSH免密码登录的实现主要依赖于公钥/私钥对的使用。在客户端生成一对密钥,私钥保留在本地,公钥则被复制到目标服务器的特定目录中。当客户端尝试连接到服务器时,服务器会使用存储的公钥验证客户端的私钥,从而实现...
【服务器间通过SSH使用密钥对实现无密码登录】 在IT运维中,有时我们需要在多台服务器之间频繁地进行远程登录,每次输入密码可能会降低工作效率。SSH(Secure Shell)提供了一种安全的远程登录方式,而通过密钥对...
### Linux配置SSH免密码登录详解 #### 一、引言 在进行分布式系统如Hadoop集群的搭建过程中,为了提高效率并确保数据的安全性,通常需要实现节点间的免密码登录。这种方式通过使用SSH (Secure Shell) 的公钥/私钥...
本篇将详细介绍如何在Linux上使用SSH公钥实现免密码登录。 首先,我们需要理解SSH的公钥/私钥对。公钥是公开的,可以分享给任何需要的人,而私钥必须保密,只有拥有者才能访问。在Linux中,`ssh-keygen`命令用于...
本文将详细解释如何通过指定公钥来实现SSH无密码登录,以提高系统安全性并简化运维流程。 首先,让我们了解一下SSH的密钥对认证机制。SSH支持多种密钥类型,如RSA、DSA、ECDSA等。在这个场景中,我们使用了`ssh-...
- 使用`scp`命令上传公钥到被登录机的`~/.ssh2`目录中,例如:`scp id_dsa_2048_a.pub root@192.168.0.1:/root/.ssh2`,确保被登录机的`.ssh2`目录已经存在。 #### 第三步:配置被登录机的授权文件 最后一步是在被...
`#chmod 644 ssh_config ssh_host_dsa_key.pub ssh_host_key.pub ssh_host_rsa_key.pub` 这将将公钥文件的权限设置为 644,确保只有root用户可以访问这些文件。 4. 最后,需要启动 SSH 服务: `#service sshd ...
该命令将生成私钥和公钥两个文件,私钥文件名通常是 `id_rsa` 或 `id_dsa`,公钥文件名通常是 `id_rsa.pub` 或 `id_dsa.pub`。例如,在 Node1 节点上生成 RSA 密钥对: ``` node1$ ssh-keygen -t rsa ``` 在上面的...
6. **应用领域**:DSA通常与SSL/TLS协议、PGP、SSH等安全协议一起使用,确保数据传输的完整性和认证。 7. **环境问题**:运行DSA源码可能遇到的问题包括不兼容的编译器版本、缺失的库文件、不正确的链接选项或者特定...
SSH公钥访问是SSH协议下的一种认证方式,它通过一对公钥和私钥来验证用户的身份,从而在登录时只需输入一次密码即可。 #### 二、为什么使用SSH公钥访问? 1. **安全性高**:公钥认证的方式避免了密码在网络中的...
**标题解析:** "WINSCP-SFTP SSH免密码登录" 指的是使用WINSCP工具通过SFTP(Secure File Transfer Protocol)协议,并利用SSH(Secure Shell)进行安全连接,实现无需手动输入密码的自动化登录。 **描述解析:** ...
- ssh_host_dsa_key.pub:使用DSA(Digital Signature Algorithm)算法的公钥。 - ssh_host_rsa_key.pub:使用RSA(Rivest-Shamir-Adleman)算法的公钥。 - ssh_host_ecdsa_key.pub:使用ECDSA(Elliptic Curve ...
创建完成后,ssh-keygen 命令将生成两个文件:私钥文件 `id_dsa` 和公钥文件 `id_dsa.pub`。 私钥文件 `id_dsa` 是 Ansible 连接到远程主机的必要文件,而公钥文件 `id_dsa.pub` 是 Ansible 验证身份用的文件。 在...
在Linux系统中,等效用户(Equivalent User)通常指的是在一个特定场景下能够实现无密码登录的用户配置。这种设置常用于集群环境下的双机或多机之间进行无缝通信与数据交换,特别是在Oracle RAC(Real Application ...