`
macken
  • 浏览: 346764 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

ssh 公钥 私钥

 
阅读更多

 

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

  • 大小: 66.5 KB
分享到:
评论
1 楼 hyj1254 2012-05-06  
图借用了兄弟。

相关推荐

    RSA生成公钥私钥和使用公钥私钥加密解密demo

    本示例提供了一个RSA加密工具类,用于生成公钥和私钥,并使用它们进行加密和解密操作,这对于保护数据库中的敏感信息,如密码,是非常必要的。 1. **RSA算法原理**: RSA算法基于数论中的大数因子分解难题。其基本...

    【putty】TortoiseGit使用ssh生成私钥的转换工具

    SSH通过公钥/私钥对认证用户身份,避免每次操作都需要输入用户名和密码。 "putty"则是一个广泛使用的SSH客户端,其组件包括PuTTYgen(密钥生成器)、Pageant(代理服务器)和Plink等。 PuTTYgen用于生成、导入和...

    LinuxSSH使用ssh公钥密钥自动登陆linux服务器.pdf

    例如,使用 `ssh-keygen -b 1024 -t rsa` 生成 1024 位 RSA 加密的公钥私钥对。 2. 公钥密钥对的组成部分:公钥密钥对由两个部分组成:私钥(id_dsa)和公钥(id_dsa.pub)。私钥用于身份验证,公钥用于加密和解密...

    ssh配置公钥和私钥登陆SecureCRT[整理].pdf

    SSH 配置公钥和私钥登录 SecureCRT SSH(Secure Shell)是一种网络协议,用于安全地访问和管理远程服务器。 SecureCRT 是一种流行的 SSH 客户端软件,支持多种身份验证方式,包括密码认证和公钥认证。在本文中,...

    linux新增用户设置权限与生成公钥私钥.pdf

    在 Linux 操作系统中,为用户生成公钥私钥可以使用 ssh-keygen 命令。例如: $ ssh-keygen -t rsa -b 2048 释义:此命令生成了一个 2048 位的 RSA 私钥和公钥。 生成的公钥私钥可以用于 SSH 连接、加密等应用场景...

    linux新增用户设置权限与生成公钥私钥.doc

    2. 默认情况下,公钥会被保存在`~/.ssh/id_rsa.pub`,私钥保存在`~/.ssh/id_rsa`。 3. 将公钥内容追加到远程服务器的`~/.ssh/authorized_keys`文件中,通常通过`ssh-copy-id`命令完成。 通过以上步骤,你可以有效地...

    SSH-私钥泄露渗透测试配套ova环境

    SSH使用公钥/私钥对进行加密通信。私钥是保密的,只存储在客户端,而公钥则被分发到服务器。当客户端尝试连接服务器时,它会使用私钥对数据进行签名,服务器通过验证这个签名来确认客户端的身份。如果私钥泄露,恶意...

    c#公钥加密私钥解密和验证

    在IT领域,尤其是在网络安全和数据保护方面,公钥加密和私钥解密是核心概念,主要应用于SSL/TLS协议、SSH、PGP等。在C#编程中,我们可以使用.NET框架提供的System.Security.Cryptography命名空间来实现这些功能。...

    在mac本机查看公钥加入服务器中

    公钥和私钥是一对,公钥存放在服务器端,私钥存放在客户端(如Mac电脑)。当客户端尝试连接服务器时,服务器会发送一个随机数给客户端,客户端用私钥加密后发送回去,服务器用公钥解密,如果解密成功,那么这个...

    使用公钥加密私钥解密原理

    公钥加密和私钥解密在实际应用中有着广泛的应用,例如HTTPS协议用于安全的网页浏览,SSH用于远程登录,PGP用于电子邮件加密,以及数字证书用于身份验证等。了解和掌握公钥加密私钥解密的原理及其在Java中的实现,...

    ssh私钥泄露获取主机权限

    id_rsa:就是你的私钥,用于解密由公钥加密的内容; id_rsa.pub:公钥,很多服务器都是需要认证的,ssh认证是其中的一种。在客户端生成公钥,把生成的公钥添加到服务器,你以后连接服务器就不用每次都输入用户名合密码...

    gerrit 搭建 示例

    在客户端上,我们需要批量添加用户,并生成 ssh 公钥私钥。 使用以下脚本批量添加用户: ```bash #!/bin/bash for name in admin dev review verify test01 test02 test03 do useradd $name echo $name | passwd...

    RSA加密 公钥、密钥生成工具

    在提供的"RSA加密 公钥、密钥生成工具"中,用户可以方便地生成RSA公钥和私钥对,而无需手动执行上述数学步骤。RsaKeys.exe文件很可能是一个执行程序,运行后会提供一个用户界面,允许用户生成并管理他们的RSA密钥对...

    Go-sshkeys-获取ssh服务器的所有ssh公钥

    "Go-sshkeys-获取ssh服务器的所有ssh公钥"项目就是这样一个例子,它提供了一个用Go语言编写的工具,可以方便地获取SSH服务器上的所有SSH公钥。 SSH公钥是SSH认证机制的一部分,用于实现无密码登录或者加强服务器...

    支持rsa公钥加密私钥解密;支持rsa公钥解密私钥加密

    标题中提到的“支持rsa公钥加密私钥解密”是指使用RSA算法时的一种常见操作:用公钥加密数据,然后用私钥解密。这种模式通常发生在数据从发送方传输到接收方的过程中,确保即使数据在传输过程中被截获,攻击者也无法...

    PuTTYGen是一款专业的公钥私钥生成软件。

    PuTTYGen最新版能够帮助用户创建有效的ssh密钥,可以对公钥的合法性进行快速的支持,是开源网络客户端PuTTY的组件之一。PuTTYGen软件涵盖包括Rivest–Shamir–Adleman、数字签名算法、椭圆曲线数字签名算法等,支持...

    windows下cmd中使用ssh命令访问Linux服务器的工具

    2. 配置SSH公钥私钥对:在CMD中,使用新安装的SSH工具生成密钥对。键入命令`ssh-keygen`,然后根据提示设置密钥文件的保存位置和密码。这将生成两个文件,通常为`id_rsa`(私钥)和`id_rsa.pub`(公钥)。 3. 将...

    Win64OpenSSL-1_1_0f_用于生成RSA的公钥私钥对,并可加解密处理

    4. **身份验证**:如SSH连接中,客户端用服务器的公钥验证服务器的身份。 总的来说,Win64OpenSSL-1_1_0f提供的工具是RSA加密技术在Windows 64位环境中的实用实现,它不仅能够生成密钥对,还能进行加解密操作,是...

    Linux免密登入 使用公钥+私钥:MobaXterm设置无密码登录

    ### Linux免密登录详解:利用MobaXterm实现公钥+私钥认证 #### 一、密钥对的概念 在介绍如何使用MobaXterm进行免密登录之前,首先需要理解密钥对的基本概念。密钥对是由一对公钥和私钥组成的,它们在数字加密领域...

    LinuxSSH使用ssh公钥密钥自动登陆linux服务器收集.pdf

    **第一步:生成ssh公钥密钥对** 在管理服务器上,使用`ssh-keygen`命令生成一对rsa类型的公钥和私钥。例如: ```bash ssh-keygen -b 1024 -t rsa ``` 这里的`-b 1024`指定了密钥长度为1024位,`-t rsa`选择了RSA...

Global site tag (gtag.js) - Google Analytics