SSH key生成及其使用

一、检查是否已经存在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服务已经安装

  1. 检查服务是否已经启动
    ps -e | grep sshd

  2. 启动、停止、重启服务
    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

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

SSH Key的生成和使用相关推荐

  1. 生成ssh key (Mac Linux )

    查看ssh key是否存在 ls -al ~/.ssh 生成ssh key 1.生成rsa key cd ~/.ssh ssh-keygen -t rsa -C "youemail@exam ...

  2. 多个SSH key对应多个Host: Github, Bitbucket

    https://confluence.atlassian.com/bitbucket/configure-multiple-ssh-identities-for-gitbash-mac-osx-lin ...

  3. git如何查看sshkey_Jenkins配置SSH Key下载代码

    在写这篇文章之前,我一直使用用户名和密码方式进行各种操作,因为比较方便省心,但是在使用的过程中,偶尔会出现异常问题,导致Git下载失败,所以建议大家都使用ssh key方式更新代码. 在Jenkins ...

  4. Mac环境配置SSH Key

    文章目录 1.查看本地是否存在SSH Key 2.生成SSH Key 生成:ssh-keygen -t rsa -C "emAIl@xxx.com" 添加:ssh-add ~/.s ...

  5. SSH key的使用

    SSH key的简介 Secure Shell(安全外壳协议,简称SSH)是一种加密的网络传输协议,可在不安全的网络中为网络服务提供安全的传输环境[1].SSH通过在网络中创建安全隧道来实现SSH客户 ...

  6. Window下git生成SSH Key以及格式转换

    1.确保已经安装了git工具. 2.在鼠标右键中选择"Git Bash Here"打开命令窗口. 3.输入命令"cd ~/.ssh/",进入到.ssh文件夹 c ...

  7. Git SSH Key生成,配置到GitHub 并测试

    //本环境为os下 //首先是查看本机安装git版本 yangliu$ git --version git version 2.17.0 //git目录 yangliu$ which git /usr ...

  8. Git SSH Key 生成并添加到github/gitee步骤

    Git SSH Key 生成并添加到github/gitee步骤 在本地生成密钥 大家好,这里是坚果前端小课堂,欢迎大家关注我的公众号,"坚果前端" Git是分布式的代码管理工具, ...

  9. window 下生成SSH key

    使用命令:ssh-keygen  -t  rsa 这样密钥就生成了.然后在用户文件下,id_rsa.pub里面的内容就是公钥信息了 把公钥信息放到gitHub上,就不需要输入用户名和密码就可以进行数据 ...

  10. windows下生成github ssh key详解

    一.引子: 什么是ssh:ssh是Secure Shell(安全外壳协议)的缩写,建立在应用层和传输层基础上的安全协议.为了便于访问github,要生成ssh公钥,这样就不用每一次访问github都要 ...

最新文章

  1. 自回归模型PixelCNN 的盲点限制以及如何修复
  2. 最新县及县以上行政区划代码(截止2009年12月31日)
  3. python自动化办公都能做什么菜-python接口自动化
  4. 项目管理风险控制及注意事项
  5. 50个jQuery插件可将你的网站带到另一个高度
  6. 开源大数据周刊-第103期
  7. excel中空格去不掉java_在Apache POI中跳过空白Excel单元格
  8. 线性表:7.C语言链表实现俄罗斯轮盘赌小游戏
  9. 关于多线程的一点补充
  10. Zabbix(三)zabbix平台添加服务监控选项(http、nginx、mysql)
  11. java的头怎么写_JAVA对象布局之对象头(Object Header)
  12. 里皮正式告别国足:我尽了最大努力让球队成长
  13. 请详细描述listview与gridview的异同点_专利和著作权有什么异同点,听听专业人士怎么说...
  14. 中国中央空调行业竞争力策略及未来发展潜力预测报告2021年版
  15. 基于KDJ指标的Dual Thrust策略
  16. Asymptotic I Catalan Number
  17. 中国DCS品牌知名度调查
  18. 《Photoshop蒙版与合成(第2版)》目录—导读
  19. Debezium 抽取oracle数据
  20. 博客园屏蔽博文页面广告的方法

热门文章

  1. 【原创】ESXI6.7+ikuai爱快搭建软路由(非常详细)
  2. ECS 入门到入土: 一、什么是 ECS
  3. 云服务器ECS是什么
  4. java-net-php-python-jspm毕业就业管理系统演示录像2019计算机毕业设计程序
  5. 标书制作,全流程视频教程大全
  6. Android View事件传递机制
  7. hive sql alter table 修改表操作小记
  8. RMS调度器实现原理
  9. 一文详解GATK-HaplotypeCaller 变异检测原理和实战
  10. 计算机英语总结800,高三英语教师工作总结800字(通用5篇)