介绍

ssh分为客户端(client)和服务端(server),在客户端会生成 id_rsa(私钥)和公钥(id_rsa.pub)

  1. 客户端将私钥发给服务端
  2. 客户端使用私钥将密码加密,并发送给服务端
  3. 服务端用公钥解密登录密码

ssh免密登录原理:
1, node1 使用 ssh-keygen –t rsa 生成公钥和私钥
2,ssh-copy-id root@node2 将公钥拷贝到node2上,实际上是把公钥内容追加到 authorized_keys文件中。
请求时:
1,node1向node2发送连接请求时,附带主机,ip地址等信息
3, node2收到请求后,去授权文件里查找node1的公钥,找到之后,随机生成一个字符串,并用公钥加密,并发送给node1
4, node1接收到密文之后,用私钥解密,并把解密结果返回给node2
5, node2拿到解密结果之后,与之前的字符串进行比较,如果相同,则可以登录成功。

安装与配置

  1. 安装客户端(ubuntu已经默认安装)
    sudo apt-get install openssh-client
  2. 安装服务端
    apt-get install openssh-server
  3. 配置文件
    sudo gedit /etc/ssh/sshd_config

openssh
在主机中开启了openssh服务,那么就对外开放了远程连接的接口
openssh的服务端:sshd
openssh的客户端:ssh
ssh————————————>sshd
client      server
ssh
ssh= secure shell
可以让远程主机通过网络访问sshd服务,开始一个安全shell,并对其进行操控
sshd
可以通过网络在主机中开启shell的服务

启动和关闭ssh

  1. sudo service ssh start
  2. sudo /etc/init.d/ssh restart
  3. sudo service ssh stop

连接和断开服务端

  1. ssh usr@hostname
    usr 是服务端的用户名,如果客户端和服务端客户名称相同,则不需要指定
    ssh -p 2222 user@host 可以指定端口
    hostname 可以是客户端ip地址,也可以是客户端主机名
  2. exit

设置公钥和私钥(生成免密的登录)

免密登录是单向的.

  1. ssh-keygen -t rsa
    在客户端生成公钥和私钥
  2. ssh-copy-id user@host
    将公钥上传到服务端
    本质上是将客户端的~/.ssh/id_rsa.pub公钥的内容添加到服务器的~/.ssh/authorized_keys
ssh-keygen -f id_dsa -p
改变私钥的密码
ssh-keygen -f "~/.ssh/known_hosts" -R 192.168.1.254

scp

secure cp(安全的copy)
注意是在客户端输入命令,而不是登录服务端输入命令
远程主机要带ip地址
scp /dir/file user@ip:/dir/file 复制本地文件到服务器
scp user@ip:/dir/file /dir/file 复制服务器文件到本地
如果是客服端有的文件夹(路径相同),则无需再服务端创建文件夹,如果没有则会报错

-r 递归复制
-f 强制复制
-v 显示进度

配置远程 root登录

PermitRootLogin without-password -> PermitRootLogin yes

sudo service ssh restart

参考:
https://www.cnblogs.com/xishuai/p/7458191.html
permission denied for root@localhost for ssh connection

参考文献:
http://www.jb51.net/os/Ubuntu/161353.html
http://blog.csdn.net/zht666/article/details/9340633
http://www.jb51.net/os/Ubuntu/161384.html 配置详解
http://blog.csdn.net/pipisorry/article/details/52269785 公钥和私钥配置
http://os.51cto.com/art/201304/390042.htm ssh常用命令
https://www.cyberciti.biz/faq/howto-ssh-changing-passphrase/
http://www.cnblogs.com/longjshz/p/5773679.html
https://blog.csdn.net/qq_42036824/article/details/82943088

linux ssh原理相关推荐

  1. linux操作系统-SSH原理介绍与免密运用与远程命令操作

    PS:运用好SSH,对管理众多服务器可以带来极大的便利.当我们从一台服务器访问另一台服务器,我们可以输入密码访问,并不影响效率.但是当我们需要访问多台服务器,或者几十上百台的时候就有点麻烦了.或者对几 ...

  2. 通过ssh远程登录linux的原理过程和配置免密登录

    1.总结通过ssh远程登录linux的原理过程 基于口令的认证 客户端和服务端建立TCP连接 协商阶段 双方进行ssh版本协商 密钥协商阶段 在服务器端生成一对密钥,将公钥传递给客户端,客户端将密钥C ...

  3. 从无盘启动看 Linux 启动原理

    作者:bobyzhang,腾讯 IEG 运营开发工程师 0. 故事的开始 0.1 为什么和做什么 最近家里买了对音响,我需要一个数字播放器.一凡研究后我看上了 volumio(https://volu ...

  4. SSH原理与运用(一):远程登录

    SSH是每一台Linux电脑的标准配置. 随着Linux设备从电脑逐渐扩展到手机.外设和家用电器,SSH的使用范围也越来越广.不仅程序员离不开它,很多普通用户也每天使用. SSH具备多种功能,可以用于 ...

  5. linux ssh注册码,linux ssh -l 命令运用

    ssh是远程登录命令,-l选项是最常用的选项,下面是我的一些总结 远程登录:ssh  -l  userName  ip # 远程登录到 10.175.23.9 ssh -l root2 10.175. ...

  6. Linux安全原理简介

    Linux安全原理简介 介绍 在设置Linux计算机的所有阶段,安全性应是首要考虑之一.要在计算机上实施良好的安全策略,需要对Linux的基础知识以及所使用的某些应用程序和协议有充分的了解. Linu ...

  7. centos7无盘启动_从无盘启动看Linux启动原理

    作者:bobyzhang,腾讯 IEG 运营开发工程师 0. 故事的开始 0.1 为什么和做什么 最近家里买了对音响,我需要一个数字播放器.一凡研究后我看上了volumio( 我打算让volumio运 ...

  8. SSH原理与运用:远程登录

    SSH是每一台Linux电脑的标准配置. 随着Linux设备从电脑逐渐扩展到手机.外设和家用电器,SSH的使用范围也越来越广.不仅程序员离不开它,很多普通用户也每天使用. SSH具备多种功能,可以用于 ...

  9. Linux SSH 免密登录

    Linux SSH 免密登录 本篇我们来 看看 Linux 的免密登录的原理 以及实际操作一番 概述 什么是 Linux SSH 免密登录,我觉得大家应该都 多少听过 或者操作过,那你真的理解整个免密 ...

最新文章

  1. 马尔科夫随机场的基本概念
  2. 2008年校本培训之论文 封面
  3. opencv 图像 抠图 算法_人人可用的在线抠图,AI自动化的那种!北大校友算法玩出新高度...
  4. pythonista3使用说明_pythonista3都能做什么
  5. java 强制向上转型,Java 转型(向上或向下转型)详解及简单实例
  6. 使用Xftp5连接云服务器
  7. python使用glob模块匹配文件及路径
  8. 语言的开题报告范文_【开题系列】刘凤朝:撰写文科博士学位论文开题报告应注意的几个问题...
  9. Genymotion安装apk问题,不能部署Genymotion-ARM-Translation_v1.zip
  10. android 组态软件,Livzenwex安卓版组态软件
  11. 浅谈电子商务网站购物车
  12. LeetCode 刷题: Fizz Buzz
  13. 年记 2018,新年快乐
  14. ROS机器人021-机器人命令行发送cmd_vel话题及/cmd_vel geometry_msgs/Twist示例
  15. python表示差值_Python-dataframe的对应列求差值
  16. 利用Vlookup函数在Excel中根据一列来筛选信息
  17. 让你在 API 设计中少踩坑的实战分享
  18. Go语言使用golang-jwt/jwt/v4进行JWT鉴权
  19. 轻松学会linux下查看内存频率,内核函数,cpu频率
  20. 思博伦PosApp(Positioning Application)使用方法——如何设置动态载具

热门文章

  1. 检测电脑硬件的软件_慎用优化软件 不然I7也会卡
  2. Python+OpenGL实现虚拟场景中不同物体的拾取与选择
  3. 1000道Python题库系列分享22(40个填空题)
  4. php随机关键词,php实现向含html文本内容随机位置插入关键词
  5. spring boot +vue用什么记录登录状态_为什么很多Spring Boot开发者放弃了Tomcat
  6. 力扣376. 摆动序列(JavaScript)
  7. java获取异常信息_Python中获取异常(Exception)信息
  8. 为什么从网页上打印怎们好像被缩放_便捷高效低成本,映美热敏云打印机CTP-180UWE体验...
  9. C语言之预处理探究(二):条件编译(Condition Compile)
  10. Java9 jar兼容_java9新特性-6-多版本兼容jar包