`
stulance
  • 浏览: 31558 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

【开发准备】linux ssh 免key登录

阅读更多

 

转自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免密码登录机制原理及实现范例

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

    C# ssh key 各种代码和文件说明

    在提供的压缩包文件"**C#SSHKEY各种代码项目工具文档说明**"中,应该包含了相关的示例代码、项目文件和使用说明文档。通过这些资源,你可以更深入地了解如何在C#中集成SSH Key功能,实现与远程服务器的安全交互。...

    java实现ssh方式连接linux(包含ganymed-ssh2-build210.jar包)

    java实现ssh方式连接linux(包含ganymed-ssh2-build210.jar包) ---------Java语言+绚丽的界面+仿ssh实现调用Linux的Terminal,实现远程连接linux进行命令行的操作!

    putty\puttygen\sshkey

    PUTTY、PuTTYgen 和 SSH Key 是在 IT 领域中进行远程访问和安全通信的重要工具,尤其在Linux和Unix系统管理中广泛使用。这些工具主要与Secure Shell (SSH) 协议相关,用于加密网络连接,确保数据传输的安全性。 **...

    linux ssh 别名登录小技巧

    ### Linux SSH别名登录小技巧 #### 背景与目的 在日常工作中,IT人员经常需要连接到多台远程服务器进行管理和维护操作。传统的做法是利用图形界面工具(如Putty、SecureCRT等)或者命令行方式输入完整的登录信息...

    Java(通过ganymed-ssh2-build210.jar)实现SSH远程连接linux终端

    Java通过ganymed-ssh2-build210.jar库实现SSH远程连接Linux终端是一个常见的应用场景,主要用于自动化运维、系统管理或者开发过程中需要与Linux服务器交互的场景。ganymed-ssh2-build210.jar是Java的一个开源SSH库,...

    linux-临时允许朋友使用Github的公钥ssh登录到你的Linux

    总结:临时允许朋友使用GitHub公钥SSH登录Linux涉及了SSH的密钥对管理、用户账户创建、权限设置以及安全监控等多个方面。通过这种方式,你可以在保障系统安全的同时,为合作提供便利。请务必在完成后及时撤销权限,...

    用python开发的maclinux下命令行ssh快速登陆.zip

    在嵌入式Linux开发领域,命令行...总的来说,Python在嵌入式Linux开发中提供了丰富的工具和库,使得SSH登录和其他自动化任务变得简单易行。通过学习和实践,你可以大大提高开发效率,更好地管理和维护你的嵌入式系统。

    Linux虚拟机的SSH双重登录认证-bruce1

    Linux虚拟机的SSH双重登录认证是一种增强安全性的重要措施,它结合了传统的密码验证与一次性通行码(TOTP,Time-based One-Time Password)机制,确保只有经过授权的用户才能访问系统。这种认证方式常用于对安全有高...

    linux-远程管理SSH密钥以控制对主机的访问

    在Linux环境中,SSH(Secure Shell)是一种用于安全远程登录到服务器的标准协议,它允许用户无需暴露密码即可进行身份验证。SSH密钥对是SSH的一种安全机制,由公钥和私钥组成,提供了一种比传统密码更安全的身份验证...

    linux基础命令-生成ssh密钥

    在Linux系统中,SSH(Secure Shell)是一种网络协议,用于安全地远程登录到服务器并执行命令。当涉及到自动化任务,如Jenkins持续部署时,SSH密钥对的配置显得尤为重要,因为它们允许无密码登录,提高了安全性并简化...

    SSH整合登录小例子

    - 一个简单的整合例子可能是:将Linux服务器的SSH认证与公司的AD服务器结合,通过PAM模块实现用户登录时的身份验证,这样员工使用统一的公司账户就能安全登录到服务器。 9. **最佳实践**: - 定期更换SSH密钥,以...

    SSH生成工具

    在IT行业中,SSH通常用于Linux或Unix系统之间的远程登录,可以替代不安全的telnet或rlogin协议。SSH通过加密技术确保了通信的安全性,防止中间人攻击和其他监听手段窃取敏感信息。SSH生成工具能够帮助开发者快速创建...

    SSH集成代码

    10. **安全实践**:定期更换SSH密钥,禁用密码登录,启用SSH Key-Based Authentication,限制失败尝试次数等,都是提高SSH安全性的措施。 在这个"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常见错误整合分析

    SSH(Secure Shell)是一种网络协议,用于在不安全的网络上提供安全的远程登录和其他服务。在使用SSH进行系统管理或开发过程中,我们可能会遇到各种错误。以下是对这些常见错误的详细分析: 1. **连接拒绝...

    SSH文件上传和下载功能

    本示例"SSHFileUpAndDown"是利用SSH协议实现文件上传和下载功能的一个开发实践,对于系统管理员和开发者来说,理解并掌握这一技术非常实用。 首先,SSH文件传输通常涉及到两个主要组件:SSH客户端和SSH服务器。...

    ssh-keygen 兼容方案

    在IT行业中,SSH(Secure Shell)是一种用于在网络之间安全传输数据的协议,广泛应用于远程登录、文件传输等场景。SSH密钥对的生成是SSH安全性的基础,`ssh-keygen`命令是Unix/Linux系统中用于生成这些密钥的工具。...

    搭建Linux Git服务器以及配置tortoiseGit

    【搭建Linux Git服务器】 在Linux环境下,搭建Git服务器是一个关键步骤,用于实现代码版本...这个过程涉及到Git的安装和配置,SSH密钥的生成和管理,以及客户端的设置,确保了团队成员可以安全、高效地协作开发项目。

Global site tag (gtag.js) - Google Analytics