ssh(Secure Shell)
OpenSSH的安全认证协议:RSA(1.0)/DSA(2.0)
RSA/DSA密钥工作原理
需要生成一对密钥,公钥、私钥,公钥用来加密,私钥用来解密;ssh的连接流程如图
密钥生成
生成rsa密钥对
ssh-keygen或者ssh-keygen -t rsa
默认在~/.ssh/下生成两个文件id_rsa(私钥),id_rsa.pub(公钥)
生成dsa密钥对
ssh-keygen -t dsa
默认在~/.ssh/下生成两个文件id_dsa(私钥),id_dsa.pub(公钥)
将生成的id_dsa(rsa).pub的公钥复制到对应server端的~/.ssh/authorized_keys文件内,即可打通两台机器之间的ssh
改造了一个ssh打通脚本
#!/usr/bin/expect #version 2.0 使用ssh-copy-id命令进行公钥复制 #ssh自动打通脚本 #判断目录~/.ssh/id_rsa.pub 如果不存在 执行ssh-keygen -t rsa生成pub文件 #判断参数是否大于1个,必须指定host ip地址,用户名/密码默认为root Sogou-RD@2008 if { $argc < 1 } { puts stderr "Usage:connect_ssh.exp host \[username\] \[password\]\n" exit 1 } # 设置超时时间为 60 秒 set timeout 60 # 将命令行输入的第一个参数作为将要登录的 SSHD 服务器 set host [lindex $argv 0] # 将命令行输入的第一个参数作为将要登录的 SSHD 服务器 if { $argc > 1 } { set name [lindex $argv 1] } else { set name root } # 第三个参数是以 $name 登录 $host 的口令 if { $argc > 2} { set password [lindex $argv 2] } else { set password userpasswd } #root 用户的 rsa key 放在 /root/.ssh 中,其他用户则放在 /home/$name/.ssh if { $name == "root"} { #spawn scp /$name/.ssh/id_rsa.pub $name@$host:/tmp spawn ssh-copy-id -i /$name/.ssh/id_rsa.pub $name@$host } else { #spawn scp /home/$name/.ssh/id_rsa.pub $name@$host:/tmp spawn ssh-copy-id -i /home/$name/.ssh/id_rsa.pub $name@$host } # 等待上个命令的响应 expect { "(yes/no)?" { send "yes\n" expect "assword:" send "$password\n" } "assword:" { send "$password\n" } } expect eof # 下面将测试能否自动登录,不用输入密码 spawn ssh $host -l $name expect { "~]#" { send_user "Auto login the server successfully!" } "assword:" { send_user "failed to login the server!" } } #send "ls\n" #expect "~]#" # 退出 $host send "exit\n" interact
参考资料:
http://hi.baidu.com/%BA%CE%C3%B7%D6%AE%D3%D1/blog/item/5146e58b41ef211ac9fc7a3b.html
http://blog.chinaunix.net/space.php?uid=21266384&do=blog&id=186425
http://jianjian.blog.51cto.com/35031/123391/
通用线程: OpenSSH 密钥管理
https://www.ibm.com/developerworks/cn/linux/security/openssh/part1/
https://www.ibm.com/developerworks/cn/linux/security/openssh/part2/index.html
http://www.ibm.com/developerworks/cn/linux/security/openssh/part3/index.html
SSH 安全性和配置入门
http://www.ibm.com/developerworks/cn/aix/library/au-sshsecurity/
通过 SSH 密钥验证实现在不同系统之间的脚本自动化
http://www.ibm.com/developerworks/cn/aix/library/1006_lisali_sshlogon/index.html
Unix/Linux 系统自动化管理: 远程登录篇
http://www.ibm.com/developerworks/cn/aix/library/0909_jinjh_unixlogin/
在 Linux 上进行自动备份
http://www.ibm.com/developerworks/cn/linux/l-backup/index.html?ca=dwcn-newsletter-linux
相关推荐
本示例提供了一个RSA加密工具类,用于生成公钥和私钥,并使用它们进行加密和解密操作,这对于保护数据库中的敏感信息,如密码,是非常必要的。 1. **RSA算法原理**: RSA算法基于数论中的大数因子分解难题。其基本...
SSH通过公钥/私钥对认证用户身份,避免每次操作都需要输入用户名和密码。 "putty"则是一个广泛使用的SSH客户端,其组件包括PuTTYgen(密钥生成器)、Pageant(代理服务器)和Plink等。 PuTTYgen用于生成、导入和...
例如,使用 `ssh-keygen -b 1024 -t rsa` 生成 1024 位 RSA 加密的公钥私钥对。 2. 公钥密钥对的组成部分:公钥密钥对由两个部分组成:私钥(id_dsa)和公钥(id_dsa.pub)。私钥用于身份验证,公钥用于加密和解密...
SSH 配置公钥和私钥登录 SecureCRT SSH(Secure Shell)是一种网络协议,用于安全地访问和管理远程服务器。 SecureCRT 是一种流行的 SSH 客户端软件,支持多种身份验证方式,包括密码认证和公钥认证。在本文中,...
在 Linux 操作系统中,为用户生成公钥私钥可以使用 ssh-keygen 命令。例如: $ ssh-keygen -t rsa -b 2048 释义:此命令生成了一个 2048 位的 RSA 私钥和公钥。 生成的公钥私钥可以用于 SSH 连接、加密等应用场景...
2. 默认情况下,公钥会被保存在`~/.ssh/id_rsa.pub`,私钥保存在`~/.ssh/id_rsa`。 3. 将公钥内容追加到远程服务器的`~/.ssh/authorized_keys`文件中,通常通过`ssh-copy-id`命令完成。 通过以上步骤,你可以有效地...
SSH使用公钥/私钥对进行加密通信。私钥是保密的,只存储在客户端,而公钥则被分发到服务器。当客户端尝试连接服务器时,它会使用私钥对数据进行签名,服务器通过验证这个签名来确认客户端的身份。如果私钥泄露,恶意...
在IT领域,尤其是在网络安全和数据保护方面,公钥加密和私钥解密是核心概念,主要应用于SSL/TLS协议、SSH、PGP等。在C#编程中,我们可以使用.NET框架提供的System.Security.Cryptography命名空间来实现这些功能。...
公钥和私钥是一对,公钥存放在服务器端,私钥存放在客户端(如Mac电脑)。当客户端尝试连接服务器时,服务器会发送一个随机数给客户端,客户端用私钥加密后发送回去,服务器用公钥解密,如果解密成功,那么这个...
公钥加密和私钥解密在实际应用中有着广泛的应用,例如HTTPS协议用于安全的网页浏览,SSH用于远程登录,PGP用于电子邮件加密,以及数字证书用于身份验证等。了解和掌握公钥加密私钥解密的原理及其在Java中的实现,...
id_rsa:就是你的私钥,用于解密由公钥加密的内容; id_rsa.pub:公钥,很多服务器都是需要认证的,ssh认证是其中的一种。在客户端生成公钥,把生成的公钥添加到服务器,你以后连接服务器就不用每次都输入用户名合密码...
在客户端上,我们需要批量添加用户,并生成 ssh 公钥私钥。 使用以下脚本批量添加用户: ```bash #!/bin/bash for name in admin dev review verify test01 test02 test03 do useradd $name echo $name | passwd...
在提供的"RSA加密 公钥、密钥生成工具"中,用户可以方便地生成RSA公钥和私钥对,而无需手动执行上述数学步骤。RsaKeys.exe文件很可能是一个执行程序,运行后会提供一个用户界面,允许用户生成并管理他们的RSA密钥对...
"Go-sshkeys-获取ssh服务器的所有ssh公钥"项目就是这样一个例子,它提供了一个用Go语言编写的工具,可以方便地获取SSH服务器上的所有SSH公钥。 SSH公钥是SSH认证机制的一部分,用于实现无密码登录或者加强服务器...
标题中提到的“支持rsa公钥加密私钥解密”是指使用RSA算法时的一种常见操作:用公钥加密数据,然后用私钥解密。这种模式通常发生在数据从发送方传输到接收方的过程中,确保即使数据在传输过程中被截获,攻击者也无法...
PuTTYGen最新版能够帮助用户创建有效的ssh密钥,可以对公钥的合法性进行快速的支持,是开源网络客户端PuTTY的组件之一。PuTTYGen软件涵盖包括Rivest–Shamir–Adleman、数字签名算法、椭圆曲线数字签名算法等,支持...
2. 配置SSH公钥私钥对:在CMD中,使用新安装的SSH工具生成密钥对。键入命令`ssh-keygen`,然后根据提示设置密钥文件的保存位置和密码。这将生成两个文件,通常为`id_rsa`(私钥)和`id_rsa.pub`(公钥)。 3. 将...
4. **身份验证**:如SSH连接中,客户端用服务器的公钥验证服务器的身份。 总的来说,Win64OpenSSL-1_1_0f提供的工具是RSA加密技术在Windows 64位环境中的实用实现,它不仅能够生成密钥对,还能进行加解密操作,是...
### Linux免密登录详解:利用MobaXterm实现公钥+私钥认证 #### 一、密钥对的概念 在介绍如何使用MobaXterm进行免密登录之前,首先需要理解密钥对的基本概念。密钥对是由一对公钥和私钥组成的,它们在数字加密领域...
**第一步:生成ssh公钥密钥对** 在管理服务器上,使用`ssh-keygen`命令生成一对rsa类型的公钥和私钥。例如: ```bash ssh-keygen -b 1024 -t rsa ``` 这里的`-b 1024`指定了密钥长度为1024位,`-t rsa`选择了RSA...