`

【转】生成ssh keygen

    博客分类:
  • ssh
ssh 
阅读更多

from:http://ydt619.blog.51cto.com/316163/652808

 

ssh-agent 是专为既令人愉快又安全的处理 RSA  DSA 密钥而设计的特殊程序, ssh-agent 是个长时间持续运行的守护进程(daemon),设计它的唯一目的就是对解密的专用密钥进行高速缓存。

 

1) 在堡垒机上创建无密码的密钥

ssh-keygen

 

 

2) 复制~/.ssh/id_rsa.pubhost1,host2,host3服务器。我们要将它加入到root帐号的~/.ssh/authorized_keys

ssh-copy-id -i .ssh/id_rsa.pub host1

   ssh-copy-id -i .ssh/id_rsa.pub host2

   ssh-copy-id -i .ssh/id_rsa.pub host3

 

3) 上传成功后,可以在每台服务器上的看到公钥文件

ls -l /root/.ssh/authorized_keys

 

4) 在堡垒机上启用ssh-agent

 

eval `ssh-agent`

 

5) 使用 ssh-add 命令把我们的专用密钥添加到 ssh-agent 的高速缓存中

 ssh-add

 

6) 开启ssh-agent转发

编缉/etc/ssh/ssh_config文件:  ForwardAgent yes

ssh-agent能转发,这样就可以这样登陆了:堡垒机---->host1---->host2,到此请注意,如果host1上没有设定转发的话就登不了host3

 

7) 自动运行ssh-agent

/etc/profile.d下建一个ssh-agent.sh文件

 

#!/bin/sh

if [ -f ~/.agent.env ]; then
        . ~/.agent.env >/dev/null
        if ! kill -0 $SSH_AGENT_PID >/dev/null 2>&1; then
                echo "Stale agent file found. Spawning new agent..."
                eval `ssh-agent |tee ~/.agent.env`
                ssh-add
        fi
else
        echo "Starting ssh-agent..."
        eval `ssh-agent |tee ~/.agent.env`
        ssh-add
fi

 

ssh-agentkeychain方法实现普通用户以root方式登入服务器:

 

1) 在堡垒机上创建普通用户tony

 useradd tony

 passwd 123456

 

2)  创建带有密码的密钥

ssh-keygen

需要设定存放key的目录,以及密码,就能生成私钥和公钥

Generating public/private rsa key pair.
Enter file in which to save the key (/home/tony/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/tony /.ssh/id_rsa.
Your public key has been saved in /home/tony /.ssh/id_rsa.pub.

 

3)  复制~/.ssh/id_rsa.pub到运行sshd的服务器。我们要将它加入到该用户在服务器上相应帐号的~/.ssh/authorized_keys

ssh-copy-id -i .ssh/id_rsa.pub root@192.168.1.1

 

4)  上传成功后,可以在192.168.1.1上的看到公钥文件

ls -l /root/.ssh/authorized_keys

 

 

5)   下载安装keychain软件

 wget http://www.funtoo.org/archive/keychain/keychain-2.7.1.tar.bz2

tar jxvf keychain-2.7.1.tar.bz2

cd keychain-2.7.1

install -m 0755 keychain /usr/bin/

 

6)  bash_profile里面加入启动脚本,每次用户登入后就会执行keychain

/usr/bin/keychain --clear  ~/.ssh/id_rsa   ##开启一个新的shell的时候提示输入密码,提高安全性

. ~/.keychain/$HOSTNAME-sh > /dev/null   ##开启一个新的shel启用keychain

7 创建新用户www,也使用/home/tony /.ssh/id_rsa./home/tony /.ssh/id_rsa.pub,就能登入所有服务器了

cat >> /home/www/.bash_profile  <<EOF

/usr/bin/keychain --clear  ~/.ssh/id_rsa

. ~/.keychain/$HOSTNAME-sh > /dev/null

EOF

 

mkdir /home/www/.ssh

 

cp /home/tony /.ssh/id_rsa* /home/www/.ssh

 

chown –R /home/www

分享到:
评论

相关推荐

    ssh-keygen 兼容方案

    `java生成ssh-keygen兼容方案.txt`这个文件可能包含了一段Java代码或库的介绍,用于在程序中生成符合SSH标准的密钥对。在Java中,可以使用诸如Bouncy Castle这样的加密库来实现这一功能。 Bouncy Castle库提供了...

    ssh-keygen-web:在Web浏览器上生成ssh-keygen的密钥对

    本文将深入探讨`ssh-keygen`的原理、使用方法以及`ssh-keygen-web`项目,它允许用户在Web浏览器上生成SSH密钥对。 首先,让我们了解SSH密钥对的工作原理。SSH基于非对称加密技术,其中包含两个密钥:公钥和私钥。...

    ssh-keygen:在node.js中生成SSH密钥对

    生成SSH密钥对 安装 确保您拥有ssh-keygen(如果不确定,请尝试$ ssh-keygen ) npm软件包安装 npm install ssh-keygen 或从github下载并放在./node_modules中 用法 var keygen = require ( 'ssh-keygen' ) ; var...

    windows安装openssh并通过生成SSH密钥登录Linux服务器

    接下来,我们将使用`ssh-keygen`命令生成SSH密钥对。这个命令用于创建一对密钥,包括一个公钥和一个对应的私钥。公钥通常会上传到Linux服务器,而私钥则保留在本地Windows系统中,用于身份验证。`ssh-keygen`有多个...

    生成ssh key并分发到其他机器上脚本

    生成SSH密钥对的常用命令是`ssh-keygen`。在终端中输入以下命令,系统会提示你设置密码(可选)并生成默认的RSA或ED25519类型的密钥对: ```bash ssh-keygen -t rsa -b 4096 ``` 生成的密钥对默认存储在`~/.ssh/`...

    SSH的ssh-keygen命令基本用法详解

    ssh-keygen 可用来生成ssh公钥认证所需的公钥和私钥文件。 使用 ssh-keygen 时,请先进入到 ~/.ssh 目录,不存在的话,请先创建。并且保证 ~/.ssh 以及所有父目录的权限不能大于 711 生成的文件名和文件位置 使用 ...

    js-keygen:浏览器中的ssh-keygen

    使用webcrypto API生成ssh密钥对 观看现场演示,为 有关某些说明,请参见 无法在chromebook上生成ssh密钥对,但是我们可以访问chrome和webcrypto API。 我必须进行各种体操操作才能将生成的密钥对转换为SSH可以...

    Git SSH key 生成教程

    生成SSH密钥对的命令为“ssh-keygen”,此命令在不同操作系统下的具体操作有所差异。在Windows系统中,通常通过Git客户端提供的命令行工具来执行此命令;而在Linux和macOS系统中,可以直接在终端中执行。 3. SSH...

    使用ssh-keygen,实现免密码登陆linux的方法

    通过上述步骤,我们不仅学习了如何使用`ssh-keygen`工具生成SSH密钥对,还掌握了如何配置免密码登录Linux主机的具体方法。这种方式不仅可以提高工作效率,还能增强系统的安全性。希望本文能对你有所帮助!

    OpenSSH登录SSH2

    - **步骤3**: 使用`ssh-keygen`命令生成私钥和公钥文件。默认情况下,生成的私钥和公钥文件名为`id_rsa`和`id_rsa.pub`。执行命令: ``` ssh-keygen -t rsa ``` 这里采用默认设置,一路回车即可完成。生成的两个...

    详解SSH如何配置key免密码登录

    在本地机器上执行以下命令来生成SSH密钥对: ``` [root@localhost ~]# ssh-keygen ``` 按提示操作,默认情况下可直接按回车键使用默认设置。如果需要修改密钥文件的存放位置或其他选项,可以根据提示输入相应的...

    ssh的生成步骤, 非常具体的步骤

    在使用SSH连接前,通常会通过生成SSH密钥对来确保通信的安全性。下面将详细介绍SSH密钥对的生成步骤: #### 第一步:选择SSH客户端 在生成SSH密钥之前,确保你的系统上已经安装了SSH客户端。对于Windows用户,可以...

    Git SSH生成

    要生成SSH密钥对,你需要在命令行中使用`ssh-keygen`工具。这个过程通常会提示你选择保存密钥的路径、设置一个密码(可选)以及确认密钥的参数。完成后,你会得到两个文件:一个公钥(通常以id_rsa.pub为名)和一个...

    generate-ssh:ssh-keygen 的封装

    generate-ssh 是一个围绕 ssh-keygen 工具的小包装。 它支持正确的错误处理,不会多次调用回调 (:&lt;) 并且支持在 Windows 上定位 ssh-keygen 可执行文件。 生成(选择{附加路径,评论,位},cb(错误,数据{私人,...

    ssh如何配置无密码远程登录1

    ssh-keygen -t rsa ``` 这个命令将创建两个文件,默认情况下是`id_rsa`(私钥)和`id_rsa.pub`(公钥)。你可以按提示设置密码,但为了实现无密码登录,保持空密码即可,连续回车3次。 2. **复制公钥到主机B**...

    ssh用户登陆代码

    4. **SSH Keygen**:生成SSH密钥对的命令是`ssh-keygen`。通常,使用RSA或Ed25519算法。例如,生成一个新的RSA密钥对: ``` ssh-keygen -t rsa -b 4096 -C "your_email@example.com" ``` 5. **密钥对管理**:将...

    使用ssh、scp不需要密码

    生成密钥对可以使用 ssh-keygen 命令,例如: ``` [user1@rh user1]$ ssh-keygen -t rsa ``` 这将生成一个 rsa 类型的密钥对,包括私钥 id_rsa 和公钥 id_rsa.pub。生成过程中需要输入密码,可以直接回车不输入密码...

    SSH基础教程:一个实例学会SSH

    * `ssh-keygen`:生成 SSH 密钥对。 SSH 的应用场景 SSH 有很多实用的应用场景,以下是一些常见的应用场景: * 远程登录服务器,管理服务器配置和维护。 * 传输文件,例如备份和恢复数据。 * 实现自动化任务,...

    Linux系统下如何做到SSH免密码登录

    1. 生成密钥对:在本地机器上运行`ssh-keygen -t rsa`命令,系统会提示你输入密钥对的保存位置和私钥的密码(可选)。默认情况下,密钥对会被保存在`~/.ssh`目录下,分别命名为`id_rsa`(私钥)和`id_rsa.pub`(公钥...

Global site tag (gtag.js) - Google Analytics