转自http://chenlb.iteye.com/blog/211809
作了一些小修改,仅记录下,怕忘记了
ssh 无密码登录要使用公钥与私钥。linux下可以用用ssh-keygen生成公钥/私钥对,下面我以CentOS为例。
有机器A(192.168.1.155),B(192.168.1.181)。现想A通过ssh免密码登录到B。
1.在A机下生成公钥/私钥对。
[chenlb@A ~]$ ssh-keygen -t rsa -P ''
-P表示密码,-P '' 就表示空密码,也可以不用-P参数,这样就要三车回车,用-P就一次回车。
它在/home/chenlb下生成.ssh目录,.ssh下有id_rsa和id_rsa.pub。
2.把A机下的id_rsa.pub复制到B机下,在B机的.ssh/authorized_keys文件里,我用scp复制。
[chenlb@A ~]$ scp .ssh/id_rsa.pub chenlb@192.168.1.181:/home/chenlb/id_rsa.pub
chenlb@192.168.1.181's password:
id_rsa.pub 100% 223 0.2KB/s 00:00
由于还没有免密码登录的,所以要输入密码。
注:如果ssh的登录端口不为默认端口时,scp会失败报:
ssh: connect to host 192.168.1.181 port 22: Connection refused
此时可以用rsync命令来传文件,先改变ssh端口,再传文件,命令如下:
rsync -avz -e 'ssh -p 8888' ~/.ssh/id_rsa.pub root@192.168.1.181:/home/data/id_rsa.pub
3.B机把从A机复制的id_rsa.pub添加到~/.ssh/authorzied_keys文件里。
[chenlb@B ~]$ cat id_rsa.pub >>~/.ssh/authorized_keys
[chenlb@B ~]$ chmod 600 .ssh/authorized_keys
authorized_keys的权限要是600。
4.A机登录B机。
[chenlb@A ~]$ ssh 192.168.1.181
The authenticity of host '192.168.1.181 (192.168.1.181)' can't be established.
RSA key fingerprint is 00:a6:a8:87:eb:c7:40:10:39:cc:a0:eb:50:d9:6a:5b.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.1.181' (RSA) to the list of known hosts.
Last login: Thu Jul 3 09:53:18 2008 from chenlb
[chenlb@B ~]$
第一次登录是时要你输入yes。
现在A机可以无密码登录B机了。
小结:登录的机子可有私钥,被登录的机子要有登录机子的公钥。这个公钥/私钥对一般在私钥宿主机产生。上面是用rsa算法的公钥/私钥对,当然也可以用dsa(对应的文件是id_dsa,id_dsa.pub)
想让A,B机无密码互登录,那B机以上面同样的方式配置即可。
参考:SSH-KeyGen 的用法 http://blog.163.com/chen98_2006@126/blog/static/158584272007101862513886/
分享到:
相关推荐
### Linux系统的SSH免密码登录机制原理及实现范例 #### 一、SSH免密码登录机制原理 SSH(Secure Shell)是一种网络协议,用于计算机之间的加密登录。它可以在不安全的网络上提供一种安全的远程登录方法。对于经常...
在提供的压缩包文件"**C#SSHKEY各种代码项目工具文档说明**"中,应该包含了相关的示例代码、项目文件和使用说明文档。通过这些资源,你可以更深入地了解如何在C#中集成SSH Key功能,实现与远程服务器的安全交互。...
java实现ssh方式连接linux(包含ganymed-ssh2-build210.jar包) ---------Java语言+绚丽的界面+仿ssh实现调用Linux的Terminal,实现远程连接linux进行命令行的操作!
PUTTY、PuTTYgen 和 SSH Key 是在 IT 领域中进行远程访问和安全通信的重要工具,尤其在Linux和Unix系统管理中广泛使用。这些工具主要与Secure Shell (SSH) 协议相关,用于加密网络连接,确保数据传输的安全性。 **...
### Linux SSH别名登录小技巧 #### 背景与目的 在日常工作中,IT人员经常需要连接到多台远程服务器进行管理和维护操作。传统的做法是利用图形界面工具(如Putty、SecureCRT等)或者命令行方式输入完整的登录信息...
Java通过ganymed-ssh2-build210.jar库实现SSH远程连接Linux终端是一个常见的应用场景,主要用于自动化运维、系统管理或者开发过程中需要与Linux服务器交互的场景。ganymed-ssh2-build210.jar是Java的一个开源SSH库,...
总结:临时允许朋友使用GitHub公钥SSH登录Linux涉及了SSH的密钥对管理、用户账户创建、权限设置以及安全监控等多个方面。通过这种方式,你可以在保障系统安全的同时,为合作提供便利。请务必在完成后及时撤销权限,...
在嵌入式Linux开发领域,命令行...总的来说,Python在嵌入式Linux开发中提供了丰富的工具和库,使得SSH登录和其他自动化任务变得简单易行。通过学习和实践,你可以大大提高开发效率,更好地管理和维护你的嵌入式系统。
Linux虚拟机的SSH双重登录认证是一种增强安全性的重要措施,它结合了传统的密码验证与一次性通行码(TOTP,Time-based One-Time Password)机制,确保只有经过授权的用户才能访问系统。这种认证方式常用于对安全有高...
在Linux环境中,SSH(Secure Shell)是一种用于安全远程登录到服务器的标准协议,它允许用户无需暴露密码即可进行身份验证。SSH密钥对是SSH的一种安全机制,由公钥和私钥组成,提供了一种比传统密码更安全的身份验证...
在Linux系统中,SSH(Secure Shell)是一种网络协议,用于安全地远程登录到服务器并执行命令。当涉及到自动化任务,如Jenkins持续部署时,SSH密钥对的配置显得尤为重要,因为它们允许无密码登录,提高了安全性并简化...
- 一个简单的整合例子可能是:将Linux服务器的SSH认证与公司的AD服务器结合,通过PAM模块实现用户登录时的身份验证,这样员工使用统一的公司账户就能安全登录到服务器。 9. **最佳实践**: - 定期更换SSH密钥,以...
在IT行业中,SSH通常用于Linux或Unix系统之间的远程登录,可以替代不安全的telnet或rlogin协议。SSH通过加密技术确保了通信的安全性,防止中间人攻击和其他监听手段窃取敏感信息。SSH生成工具能够帮助开发者快速创建...
10. **安全实践**:定期更换SSH密钥,禁用密码登录,启用SSH Key-Based Authentication,限制失败尝试次数等,都是提高SSH安全性的措施。 在这个"SSH集成代码"的博客中,可能详细讲解了如何在特定的开发环境中设置...
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) ssh.connect('example.com', username='user', password='password') sftp = ssh.open_sftp() sftp.put('/local/path/file.txt', '/remote/path/...
SSH(Secure Shell)是一种网络协议,用于在不安全的网络上提供安全的远程登录和其他服务。在使用SSH进行系统管理或开发过程中,我们可能会遇到各种错误。以下是对这些常见错误的详细分析: 1. **连接拒绝...
本示例"SSHFileUpAndDown"是利用SSH协议实现文件上传和下载功能的一个开发实践,对于系统管理员和开发者来说,理解并掌握这一技术非常实用。 首先,SSH文件传输通常涉及到两个主要组件:SSH客户端和SSH服务器。...
在IT行业中,SSH(Secure Shell)是一种用于在网络之间安全传输数据的协议,广泛应用于远程登录、文件传输等场景。SSH密钥对的生成是SSH安全性的基础,`ssh-keygen`命令是Unix/Linux系统中用于生成这些密钥的工具。...
【搭建Linux Git服务器】 在Linux环境下,搭建Git服务器是一个关键步骤,用于实现代码版本...这个过程涉及到Git的安装和配置,SSH密钥的生成和管理,以及客户端的设置,确保了团队成员可以安全、高效地协作开发项目。