`

ssh password and passphrase

阅读更多
1、ssh-keygen -t rsa
   采用默认路径,输入passphrase。
2、scp /root/.ssh/id_rsa.pub remote:/root/.ssh/authorized_keys
   需要输入root在远程机器的帐号密码
3、eval `ssh-agent`
4、ssh-add
   输入之前输入的passphrase。


说明
1,2两步是用来生成rsa公钥/私钥对的。
第一步产生了密钥对,id_rsa文件中是私钥,id_rsa.pub是公钥,也可以产生dsa方式的密钥对
第二步将公钥附加到远程主机的/root/.ssh/authorized_keys文件后面。因为之前该文件是空的,所以直接scp;如果非空,则首先scp到临时文件,然后再cat。

3,4两步用来预制Passphrase.
第三步运行ssh-agent的输出(这是eval 反引号的功能),会设置两个环境变量SSH_AUTH_SOCK和SSH_AGENT_PID,这样程序可以访问后台的ssh-agent程序
第四步设置passphrase。

完成这四步,以后ssh或者scp就不会提示输入passphrase。
如果只完成1,2两步,则会提示输入passphrase。
如果都不作,则提示输入在远程机器的帐号密码。

passphrase是用来对密钥对的私钥进行加密的,不会在网络上传播。

缺点:3,4必需每次登录都执行。因为3设置环境变量,不同的登录是不同的。但对于shell,可以放在.bash_profile中执行,对于cron脚本,也可以在脚本中设置执行;4更是致命的,因为它是交互的,无法自定执行。

解决:只好设置passphrase为空,这样3,4两步也就省掉了。

附:

ssh-agent 程序如同一个看门人,它根据需要安全地提供对安全密钥的访问。ssh-agent 启动后,它就会在后台运行,并且可以由 ssh 和 scp 程序等其他 OpenSSH 应用程序所使用。这就使得 ssh 程序可以请求一个已经解密了的密钥,而不是在每次需要时向您询问私钥的安全口令
分享到:
评论

相关推荐

    git关于ssh的学习

    "git关于ssh的学习" 本文详细介绍了 Git 中关于 SSH 的学习,包括 SSH 密钥的生成、添加到 GitHub 上、测试连接等过程。同时,还介绍了 Git 的基本使用方法,包括获取源码、仓库初始化、项目索引提交、协作编程等。...

    How to use SFTP

    The client's private key is loaded via SSHFTPClient's setAuthentication method before calling connect, supplying the full path of the private key file, the SSH username and the passphrase of the ...

    Laravel开发-laravel-ssh-tunnel-fixed

    'passphrase' => env('SSH_TUNNEL_PASSPHRASE'), // 如果需要,密钥的密码 'target_host' => env('SSH_TUNNEL_TARGET_HOST'), // 隧道目标主机 'target_port' => env('SSH_TUNNEL_TARGET_PORT'), // 隧道目标端口...

    ssh-action:用于执行远程ssh命令的GitHub操作

    passphrase -密码短语通常用于加密私钥 sync如果有多个主机,则同步执行,默认为false timeout -ssh到远程主机的超时,默认为30s command_timeout -ssh命令的超时,默认为10m key -ssh私钥的内容。 〜/ .ssh / id...

    linux ssh的配置

    如果设置为 `yes`,则禁用 passphrase/password 的提示。这对于脚本文件和批处理任务非常有用,但通常设置为 `no`。 - **CheckHostIP yes** 设置 ssh 是否查看连接到服务器的主机的 IP 地址以防止 DNS 欺骗。...

    expect中为send语句上加变量的代码

    代码如下:#!...” {send “yes\r” }sleep 1expect “Enter passphrase for key*”send “$password\r”for {set snum 0} {$snum <= 6} {incr snum} {expect “*#”send “ls -l /opt/backup/fivetre

    SSH-Server配置指南.doc

    * BatchMode:如果设为“yes”,passphrase/password(交互式输入口令)的提示将被禁止。 * CheckHostIP:设置 ssh 是否查看连接到服务器的主机的 IP 地址以防止 DNS 欺骗。 * StrictHostKeyChecking:如果设置成...

    使用Ant进行ssh和scp操作

    <scp file="localfile.txt" todir="username@remotehost:/remotepath" trust="true" keyfile="path/to/private/key" passphrase="keyphrase" /> ``` 2. `sshexec`任务:用于在远程主机上执行命令。你可以设置命令...

    hemingway:用于检查静态 ruby​​ 代码分析器 Rubocop 结果的 Web 应用程序

    = ENV["SECRET_KEY_BASE"] %> github_key: YOUR_GITHUB_KEY github_secret: YOUR_GITHUB_SECRET ssh_passphrase: YOUR_SSH_PASSPHRASE ssh_private_key: YOUR_SSH_PRIVATE_KEY_PASSWORD秘密描述github_key 您的 ...

    gitosis git服务器架设软件

    Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/john/.ssh/id_rsa. Your public key has been saved in /home/john/.ssh/id_rsa.pub....

    Debian-Linux安装和配置SSH-远程连接操作(linux系统).pdf

    * `BatchMode no`:如果设为“yes”,passphrase/password(交互式输入口令)的提示将被禁止。当不能交互式输入口令的时候,这个选项对脚本文件和批处理任务十分有用。 * `CheckHostIP yes`:设置 ssh 是否查看连接...

    FreeBSD 8.0 配置密钥登录

    同时还会询问是否设置密钥的保护密码(passphrase),建议设置一个复杂的密码来增强安全性。 **3. 复制公钥到服务器** 将客户端生成的公钥复制到FreeBSD 8.0系统的服务器上。可以在客户端执行以下命令: ``` ...

    sshexec-maven-plugin:基于Jsch的ssh的文件上传和命令执行的Maven插件

    <passphrase>your_passphrase_if_needed</passphrase> ``` ### 执行多条命令 如果需要执行多条命令,可以使用`commands`属性,将命令以列表形式提供。 ```xml ... <command>command1 <command>command2 ...

    批量修改远程linux服务器密码.docx

    执行`ssh-keygen -t rsa`,然后按照提示保存私钥和设置密码(passphrase)。生成的公钥位于`~/.ssh/id_rsa.pub`,私钥位于`~/.ssh/id_rsa`。接着,你需要将公钥复制到远程服务器的`~/.ssh/authorized_keys`文件中,...

    ubuntu终端su认证失败-允许su到root.pdf

    Enter passphrase for key '/root/.ssh/id_rsa': ``` 上述命令中,`chmod 600 -R /root/.ssh/`用于确保`.ssh`目录及其内容只有所有者(root)有读写权限,这是SSH的安全要求。然后,你可以使用`ssh`命令连接到...

    aws-ha-webapp-terraform

    就我而言,我使用ssh-keygen命令,如下所示: ssh-keygen -t rsaGenerating public/private rsa key pair.Enter file in which to save the key (/home/qaizar/.ssh/id_rsa): ./keys/terraformEnter passphrase ...

    ant上传文件使用帮助和相关jar包

    <scp trust="yes" file="localfile.txt" todir="username@hostname:/remotedir/" keyfile="path/to/privatekey.ppk" passphrase="password-if-needed"/> ``` 在这个例子中,`scp`任务将本地的`localfile.txt`...

    借助Paramiko通过Python实现linux远程登陆及sftp的操作

    如果私钥有密码保护,还需要提供 `passphrase` 参数。 - 示例代码(使用 RSA 私钥): ```python from paramiko import SSHClient, AutoAddPolicy, RSAKey key = RSAKey.from_private_key_file("path/to/...

    Maven相关配置,包含了系统级别的配置和当前用户级别的配置,用户级别的路径是~/.m2

    <passphrase>some_passphrase</passphrase> <filePermissions>664 <directoryPermissions>775 ``` 7. **Mirrors (镜像配置)** - 镜像是远程仓库的副本,通常用于加速依赖的下载。 - 示例配置如下: ```...

Global site tag (gtag.js) - Google Analytics