`
jsczxy2
  • 浏览: 1277665 次
  • 性别: Icon_minigender_1
  • 来自: 常州
文章分类
社区版块
存档分类
最新评论

【转】ssh scp 免密码方法

阅读更多

A为本地主机(即用于控制其他主机的机器) ;

B为远程主机(即被控制的机器Server), 假如ip为192.168.60.110;
A和B的系统都是Linux

在A上运行命令:
#ssh-keygen -t rsa (连续三次回车,即在本地生成了公钥和私钥,不设置密码)
# ssh root@192.168.60.110  "mkdir .ssh; chmod 0700 .ssh" (需要输入密码)
# scp ~/.ssh/id_rsa.pub  root@192.168.60.110:.ssh/id_rsa.pub (需要输入密码)

在B上的命令:
# touch /root/.ssh/authorized_keys2 (如果已经存在这个文件, 跳过这条)
#cat /root/.ssh/id_rsa.pub  >> /root/.ssh/authorized_keys2 (将id_rsa.pub的内容追加到 authorized_keys2 中)

回到A机器:
# ssh root@192.168.60.110 (不需要密码, 登录成功)

如果能保护好自己的私钥, 这种方法相对在shell上输入密码, 要安全一些

##############################################
深入一点点:

从表面上简单的理解一下登录的过程,
首先 ssh-keygen -t rsa 命令生成了一个密钥和一个公钥, 而且密钥可以设置自己的密码,可以把密钥理解成一把钥匙, 公钥理解成这把钥匙对应的锁头,把锁头(公钥)放到想要控制的server上, 锁住server, 只有拥有钥匙(密钥)的人, 才能打开锁头, 进入server并控制,而对于拥有这把钥匙的人, 必需得知道钥匙本身的密码,才能使用这把钥匙 (除非这把钥匙没设置密码), 这样就可以防止钥匙被人配了(私钥被人复制)

当然, 这种例子只是方便理解罢了,
拥有root密码的人当然是不会被锁住的, 而且不一定只有一把锁(公钥), 但如果任何一把锁, 被人用其对应的钥匙(私钥)打开了, server就可以被那个人控制了
所以说, 只要你曾经知道server的root密码, 并将有root身份的公钥放到上面, 就可以用这个公钥对应的私钥"打开" server, 再以root的身分登录, 即使现在root密码已经更改!

如果想控制n个机器, 那就需要n对钥匙(密钥和公钥), ssh-keygen 命令可以随意更改钥匙对的名字, 比如:
[root@wwy .ssh]# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): /root/.ssh/id_rsa_192.168.102.12
......

这样私钥和公钥的名字分别就是:
id_rsa_192.168.102.12 和 id_rsa_192.168.102.12.pub
然后将 id_rsa_192.168.102.12.pub 文件的内容, 追加到sever的 ~/.ssh/authorized_keys2 文件中,

最后, 在本地用ssh命令的 -i 参数指定本地密钥, 并登录:
# ssh -i /root/.ssh/id_rsa_192.168.102.12  192.168.102.12

如果密钥设置了密码, 就用密钥的密码登录, 没设密码, 就直接登录进去了

scp也是一样的
如:
scp -i /root/.ssh/id_rsa./xxx  192.168.102.158:/home/wwy/bak

分享到:
评论

相关推荐

    SSH-SCP使用方法

    ### SSH-SCP使用方法详解 ...通过以上步骤,我们可以实现SSH-SCP的免密码文件传输,这对于自动化运维和批量操作来说是非常有用的。同时,掌握SCP命令的各种选项可以帮助我们更加灵活高效地管理文件系统。

    dropbear实现免密码ssh登录方法

    ### dropbear实现免密码ssh登录方法 #### 一、引言 在IT运维与开发环境中,使用SSH(Secure Shell)协议进行远程管理是一项常见的需求。为了提高效率并减少人为输入密码的操作,通常会采用免密码登录的方式。...

    解决linux scp无需密码问题

    SCP无密码文件传输主要依赖于SSH公钥认证机制。该机制的核心思想是在客户端(本例中的本地服务器A)生成一对密钥(私钥和公钥),并将公钥复制到服务端(本例中的远程服务器B)。当客户端尝试通过SCP向服务端传输...

    使用TortoiseGit时如何实现SSH免密码登录

    ### 使用TortoiseGit实现SSH免密码登录的详细步骤 #### 一、背景介绍 在日常的开发工作中,很多团队都会使用版本控制系统如Git来进行代码管理。为了方便开发者之间的协作,通常会选择部署一个版本服务器(如GitLab...

    ssh免密码登录

    为了提高工作效率并减少密码输入的繁琐过程,实现SSH免密码登录是一种非常实用的方法。本文将详细介绍如何通过公钥认证机制来实现SSH免密码登录,并基于给定文件中的步骤进行具体说明。 #### 二、基本原理 SSH免...

    WINSCP-SFTP SSH免密码登录

    **标题解析:** "WINSCP-SFTP SSH免密码登录" 指的是使用WINSCP工具通过SFTP(Secure File Transfer Protocol)协议,并利用SSH(Secure Shell)进行安全连接,实现无需手动输入密码的自动化登录。 **描述解析:** ...

    通过秘钥实现scp不输入密码传送文件

    标题所述的"通过秘钥实现scp不输入密码传送文件"是一种使用SSH密钥对进行身份验证的方法,以避免在执行SCP(Secure Copy)命令时反复输入密码。SCP是基于SSH协议的安全文件传输工具,通常用于在不同的主机之间复制...

    两个SSH2间免密码登录

    本文主要讨论SSH2环境下实现两台机器之间免密码登录的方法。此方法适用于需要频繁进行远程操作而不想每次都输入密码的情况。 #### 配置流程概述 实现SSH2环境下的免密码登录主要分为两个部分:一是登录机(客户端)...

    ssh通讯协议及ssh免密码登录的配置

    本文将介绍 SSH 远程安全登录的工作原理、免密码登录的配置、scp 远程拷贝命令的使用等。 一、SSH 远程安全登录的工作原理 SSH 远程安全登录的工作原理基于口令。客户端发起远程登录请求,服务端接收请求,将自己...

    linux系统的ssh免密码登录机制原理及实现范例

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

    SSH 免密码登陆

    SSH 免密码登陆需要在本机生成密钥对,然后将公钥复制到远程服务器的 authorized_keys 文件中,并设置正确的权限。这样,可以实现免密码登陆。 一些常见问题的解决方案: 问题 1:在服务器 B 上没有 .ssh 文件夹和...

    SSH2免密码登录OpenSSH

    ### SSH2与OpenSSH免密码登录详解 #### 一、确定SSH版本 为了明确当前使用的SSH版本是SSH2还是OpenSSH,可以通过简单的命令行来判断。执行`ssh -V`命令,根据输出的信息来确定: - **SSH2**: 如果显示为`SSH ...

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

    SSH免密码登录是Linux管理员常用的便捷功能,它允许用户在不同主机间进行身份验证时无需每次都输入密码,提高效率并减少手动输入密码带来的安全风险。本文将详细解释如何在Linux系统中设置SSH免密码登录。 首先,...

    linux scp传输不用密码

    ### Linux SCP传输免密码的基本原理及配置步骤 在Linux环境下,SCP(Secure Copy Protocol)是一种基于SSH协议的安全文件传输方式。通常情况下,我们通过输入密码来进行身份验证,从而实现文件的传输。但在某些应用...

    CentOS 6.5 SSH免密码登录

    CentOS 6.5 SSH 免密码登录配置 本文将详细介绍 CentOS 6.5 之 SSH 免密码登录配置的相关知识点。 一、环境设置 在 CentOS 6.5 中,需要关闭防火墙和 SELinux,以便进行后续的配置。关闭防火墙可以使用以下命令:...

    ssh远程多机免密码的方法

    ### SSH远程多机免密码的方法详解 在IT领域,尤其是对于运维工程师、系统管理员和开发人员来说,实现SSH远程多机免密码登录是一项极其重要的技能。这种能力不仅可以提高工作效率,减少重复的手动输入密码动作,还能...

    postgres用户下ssh无密码登录

    本文将详细介绍Postgres用户下SSH无密码登录的实现方法。 一、修改SSH配置文件 在Postgres用户下实现SSH无密码登录,需要修改SSH配置文件。首先,需要修改/etc/ssh/sshd_config文件,添加以下配置: ...

    一键配置集群各节点ssh免密码登录

    一键配置集群各节点ssh免密码登录 首先确保每个节点已经安装了expect ,确保服务器/root/script路径存在 修改每个节点ssh配置 vi /etc/ssh/ssh_config ------------------------------- # StrictHostKeyChecking ...

Global site tag (gtag.js) - Google Analytics