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

ssh key的生成和使用

ssh 
阅读更多

一、检查是否已经存在ssh key

通常sshkey会默认生成在用户家目录下,所以查看家目录下是否存在.ssh 文件夹,以及是否存在相关目录就行。(~/.ssh/id_rsa)

二、生成key

在控制台输入: 

ssh-keygen -t rsa 

Note: -t 的意思是选择kye的type。分别有 RSA 和 DSA 两种。具体请自行百度 

控制台输出如下: 

Generating public/private rsa key pair. 

Enter file in which to save the key (/root/.ssh/id_rsa): 

Created directory ‘/root/.ssh’. 

Enter passphrase (empty for no passphrase): 

Enter same passphrase again: 

Your identification has been saved in /root/.ssh/id_rsa. 

Your public key has been saved in /root/.ssh/id_rsa.pub. 

(为了避免每次进行ssh连接时都需要输入passphrase,这里可以不用输入passphrase。)

现在你的私钥被放在了~/.ssh/id_rsa 这个文件里,而公钥被放在了 ~/.ssh/id_rsa.pub 这个文件里。

三、使用ssh key

使用ssh key的目的是使得两台机器之间建立互信,从其中一台登陆到另一台时不需要密码。具体方式如下:

1、先在主机A上创建密钥对

ssh-keygen -t rsa

这时可以在主机A上看到生成的秘钥~/.ssh/id_rsa 和公钥 ~/.ssh/ id_rsa.pub

2、把主机A的公钥放在主机B上

scp -r /root/.ssh/id_rsa.pub 192.168.31.147:/root/.ssh/authorized_keys

这里解释下scp命令:

不同的Linux之间copy文件常用有3种方法:

第一种就是ftp,也就是其中一台Linux安装ftp Server,这样可以另外一台使用ftp的client程序来进行文件的copy。

第二种方法就是采用samba服务,类似Windows文件copy 的方式来操作,比较简洁方便。

第三种就是利用scp命令来进行文件复制。

scp是有Security的文件copy,基于ssh登录。操作起来比较方便,比如要把当前一个文件copy到远程另外一台主机上,可以如下命令。

scp /home/daisy/full.tar.gz root@172.19.2.75:/home/root

然后会提示你输入另外那台172.19.2.75主机的root用户的登录密码,接着就开始copy了。

3、此时用A登陆B就不需要密码了

ssh B_ip

同理可应用于B 登陆A

四、SSH详解 1、SSH 的结构

SSH是由客户端和服务端的软件组成的,有两个不兼容的版本分别是:1.x和2.x。 用SSH 2.x的客户程序是不能连接到SSH 1.x的服务程序上去的。OpenSSH 2.x同时支持SSH 1.x和2.x。

服务端是一个守护进程(daemon),他在后台运行并响应来自客户端的连接请求。服务端一般是sshd进程,提供了对远程连接的处理,一般包括公共密钥认证、密钥交换、对称密钥加密和非安全连接。

客户端包含ssh程序以及像scp(远程拷贝)、slogin(远程登陆)、sftp(安全文件传输)等其他的应用程序。

他们的工作机制大致是本地的客户端发送一个连接请求到远程的服务端,服务端检查申请的包和IP地址再发送密钥给SSH的客户端,本地再将密钥发回给服务端,自此连接建立。SSH 1.x和SSH 2.x在连接协议上有一些差异。

一旦建立一个安全传输层连接,客户机就发送一个服务请求。当用户认证完成之后,会发送第二个服务请求。这样就允许新定义的协议可以与上述协议共存。连接协议提供了用途广泛的各种通道,有标准的方法用于建立安全交互式会话外壳和转发(“隧道技术”)专有 TCP/IP 端口和 X11 连接。

SSH被设计成为工作于自己的基础之上而不利用超级服务器(inetd),虽然可以通过inetd上的tcpd来运行SSH进程,但是这完全没有必要。启动SSH服务器后,sshd运行起来并在默认的22端口进行监听(你可以用 # ps -waux | grep sshd 来查看sshd是否已经被正确的运行了)如果不是通过inetd启动的SSH,那么SSH就将一直等待连接请求。当请求到来的时候SSH守护进程会产生一个子进程,该子进程进行这次的连接处理。

2、SSH 的启动与停止

首先确保ssh服务已经安装

检查服务是否已经启动 

ps -e | grep sshd

启动、停止、重启服务 

service sshd start     开启ssh服务 

service sshd stop      停止ssh服务 

service sshd restart    重启ssh服务 

或者使用带有路径的脚本: 

/etc/init.d/sshd start 

/etc/init.d/sshd stop 

/etc/init.d/restart

配置ssh-server,配置文件位于/etc/ssh/sshd_config,默认端口为22,为了安全,一般自定义为其他端口,然后重启

0
0
分享到:
评论
2 楼 IXHONG 2017-10-20  
updn 写道
scp -r /root/.ssh/id_rsa.pub 192.168.31.147:/root/.ssh/authorized_keys

这里最好写成将/root/.ssh/id_rsa.pub文件里的这条记录追加进147的keys里

因为如果你之前有过免密钥登录的就会失效了

1 楼 updn 2017-10-19  
scp -r /root/.ssh/id_rsa.pub 192.168.31.147:/root/.ssh/authorized_keys

这里最好写成将/root/.ssh/id_rsa.pub文件里的这条记录追加进147的keys里

因为如果你之前有过免密钥登录的就会失效了

相关推荐

    linux ssh key

    Linux SSH Key 生成和使用 Linux SSH key 是一种常用的身份验证方式,通过生成公钥和私钥来实现无密码登录远程 Linux 主机。本文将详细介绍如何在 Linux 和 Windows 平台上生成和使用 SSH key。 一、Linux 平台上...

    C# ssh key 各种代码和文件说明

    在提供的压缩包文件"**C#SSHKEY各种代码项目工具文档说明**"中,应该包含了相关的示例代码、项目文件和使用说明文档。通过这些资源,你可以更深入地了解如何在C#中集成SSH Key功能,实现与远程服务器的安全交互。...

    sshkey-cn 华为、思科、W3C RSA转16进制

    "rsa ensp sshkey"标签中,“ensp”可能是指华为的网络仿真平台(ENSP,Enterprise Network Simulation Platform),这是一个用于模拟和测试华为网络设备的工具。在这个平台上,可能需要将RSA密钥转换为16进制,以...

    华为 h3c 3com ras转16进制工具 sshkey.exe

    总之,sshkey.exe是一个专为华为、H3C和3Com设备设计的工具,用于处理RSA密钥的16进制转换,从而增强网络设备的安全远程访问。理解和正确使用这类工具对于确保网络基础设施的安全至关重要。在实际工作中,网络管理员...

    H3C sshkey.exe

    将生成的公有密钥转化为设备所需要的字符串

    putty\puttygen\sshkey

    PUTTY、PuTTYgen 和 SSH Key 是在 IT 领域中进行远程访问和安全通信的重要工具,尤其在Linux和Unix系统管理中广泛使用。这些工具主要与Secure Shell (SSH) 协议相关,用于加密网络连接,确保数据传输的安全性。 **...

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

    总的来说,生成SSH key并分发到其他机器的脚本能够极大地简化系统管理员的工作,提高效率,同时增强安全性,避免每次连接都需要手动输入密码。通过这种方式,你可以轻松地管理和维护大量的远程服务器集群。

    SSH代码自动生成工具(1/5)

    以Freemarke,Displaytag作为模版引擎,通过数据模型(原有的表注释,字段注释)生成基础的功能模型,同时生成一部分典型的可运行、可测试的业务功能代码和配置信息(如strtus配置文件,spring配置文件)。 JSmart同时...

    Openssh生成key hash

    生成Key Hash主要是为了SSH公钥认证。在这个过程中,服务器拥有一个公钥和私钥对。公钥存储在服务器的`~/.ssh/authorized_keys`文件中,而私钥则由用户保管,通常在客户端的`~/.ssh/id_rsa`或`~/.ssh/id_dsa`等文件...

    使用ssh、scp不需要密码

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

    Linux制作RSA KEY并配置SSH客户端或服务器免密码访问.pdf

    6. **打包和备份密钥**:为了安全和备份的考虑,可以将生成的密钥对使用`tar`命令进行打包压缩,并将备份文件存放到安全的位置。 ### 二、目标服务器配置 1. **进入用户`.ssh`目录**:为了配置免密码登录,需要...

    SSH生成工具

    通过使用SSH生成工具和实体类生成工具,开发者可以在保证安全性的同时,提升开发效率,降低错误率,使得项目开发更加顺畅。在实际工作中,这些工具是提高生产力的利器,对于IT专业人士来说是非常有价值的。

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

    "putty"则是一个广泛使用的SSH客户端,其组件包括PuTTYgen(密钥生成器)、Pageant(代理服务器)和Plink等。 PuTTYgen用于生成、导入和导出SSH密钥,支持多种格式,包括OpenSSH和Putty自己的PPK格式。PPK文件是...

    ssh免密key生成,shell脚本(centos,redhat)

    ssh免密key生成,shell脚本(centos,redhat)

    SSH Secure Shell Client用public key认证登录.docx

    SSH(Secure SHell)是一种网络协议,用于在不安全的网络上安全地远程登录和执行命令。SSH Secure Shell Client是一款支持SSH协议的客户端工具,它允许用户通过公钥认证方式进行登录,提供比传统密码认证更高级别的...

    ssh 生成工具

    在IT领域,特别是版本控制系统如Git的使用中,SSH密钥对是确保身份验证和数据传输安全的重要组成部分。TortoiseGit、PuTTY和GitHub都是与SSH密钥相关的工具。 TortoiseGit是一款与Git集成的Windows壳层工具,它为...

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

    如果在远程主机上创建`.ssh`目录或`authorized_keys`文件时遇到权限错误,可以尝试使用`sudo`命令或者调整文件夹和文件的权限: ``` sudo mkdir -p ~/.ssh sudo chmod 700 ~/.ssh sudo touch ~/.ssh/authorized...

Global site tag (gtag.js) - Google Analytics