摆烂式学习ssh

摆烂式学习ssh

  • ssh工作原理
  • ssh基本使用
  • sshd配置文件
  • 密钥登录
    • 1.客户端
    • 2.服务器
    • 3.注意事项
    • 4.使用密钥登录测试
  • ssh高级使用技巧
    • 1.在非正规端口启动
    • 2.rsync 命令
    • 3.透过 ssh 通道加密原本无加密的服务
    • 4.以ssh信道配合x server 传递图形接口
    • 5.ssh配合virtualbox虚拟机使用技巧

ssh工作原理

后续补充

ssh基本使用

后续补充

sshd配置文件

ssh服务器配置文件是/etc/ssh/sshd_config,大多数配置选项默认配置即可.

StrictModes yes
#这个选项非常重要,使用密钥登录时,会检查家目录和配置文件的权限,参考后面密钥登录说明PasswordAuthentication yes
#这个选项选择是否可以使用用户名和密码登录

密钥登录

1.客户端

在客户端生成密钥

#1.查看客户端可以生成哪些类型密钥ssh-keygen --help[-t dsa | ecdsa | ecdsa-sk | ed25519 | ed25519-sk | rsa]
#2.查看服务器支持哪些类型密钥
#sh_host_*为服务器支持的密钥类型
tree /etc/ssh/
/etc/ssh/
├── moduli
├── ssh_config
├── sshd_config
├── ssh_host_ecdsa_key
├── ssh_host_ecdsa_key.pub
├── ssh_host_ed25519_key
├── ssh_host_ed25519_key.pub
├── ssh_host_rsa_key
├── ssh_host_rsa_key.pub
└── ssh_import_id#3.生成密钥
#选择客户端和服务器端都支持的密钥类型
#-t: 指定密钥类型
ssh-keygen -t ed25519Generating public/private ed25519 key pair.
Enter file in which to save the key (C:\Users\pc/.ssh/id_ed25519): #建立密钥文件,直接回车
Created directory 'C:\\Users\\pc/.ssh'. #目录不存在,自动建立
Enter passphrase (empty for no passphrase): #对密钥进行加密,直接回车,不加密
Enter same passphrase again: #回车
The key fingerprint is:
SHA256:CZXwmJisbe+Tg7iyllsNF49RGin+NdFdyVDELiKkzTM pc@DESKTOP-1RI3V9O
The key's randomart image is:
+--[ED25519 256]--+
|     .ooo...B+.  |
|   o ++B.. . +   |
|  . =+O o   .    |
|   + .=E o . .   |
|  ..+o..S . .    |
|   .+o           |
|  .o o..         |
|.oo ..+          |
|o+o.  .o         |
+----[SHA256]-----+

查看生成的密钥文件

cd .\.ssh\
PS C:\Users\pc\.ssh> ls目录: C:\Users\pc\.sshMode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a----        2023/12/29     19:30            411 id_ed25519 #私钥
-a----        2023/12/29     19:30            101 id_ed25519.pub #公钥

2.服务器

到需要登录的账号的家目录下.

#1.建立目录~/.ssh
mkdir ~/.ssh#2.把客户端公钥复制到服务器客户家目录.ssh目录下
#windows11下的命令,linux相似
scp .\id_ed25519.pub lei@u18:\home\lei\.ssh#3.把公钥存储到authorized_keys文件中
cd /home/lei/.ssh
cat id_ed25519.pub >> authorized_keys#4.~目录其他用户权限不能有写权限即可
chmod 775 -R ~
#只要其他用户的权限没有写权限就可以
chmod 700 -R ~

3.注意事项

服务器上要登录的目录其他用户权限一定不能是写权限,否则密钥登录失败!

还有另外一种解决办法,就是修改配置文件 vim /etc/ssh/sshd_config

StrictModes no

这一点很重要.

网络上很少有说明这一点的地方.查看man sshd_config可以明白这一点.

 StrictModesSpecifies whether sshd(8) should check file modes and ownership of the user's files and home directory before accepting login.  This is normally desirable because novicessometimes accidentally leave their directory or files world-writable.  The default is yes.  Note that this does not apply to ChrootDirectory, whose permissions and owner‐ship are checked unconditionally.

4.使用密钥登录测试

使用工具MobaXterm,测试可以使用密钥登录.

使用powershell或cmd测试

ssh lei@u18
#不需要密码直接登录

ssh高级使用技巧

1.在非正规端口启动

#vim /etc/ssh/sshd_config
#可以有多个端口一起使用
Port mmm
Port nnn#使用
ssh -p portnumber  username@hostname

2.rsync 命令

会产生比较, 只copy更新或不存在的文件和目录
例子:

#1.本地使用
sudo rsync -av /etc/ testdir/#2.将server上的/etc复制到本地/tmp中
rsync -av -e ssh user@server:/etc /tmp

rsync 语法

rsync [-avrlptgoD][-e ssh][user@host:/dir][/local/path]
#-v: 观察模式,可以列出更多的信息,包括镜像时的档案名称等;
#-q: 与 -v 相反, 安静模式, 略过正常信息, 仅显示错误讯息;
#-r: 递归复制
#-u: 仅更新(update),若目标档案较新,则保留新档案不会覆盖;
#-l: 复制链接文件的属性,尔非链接的目标源文件内容;
#-p: 复制时,连同属性(permission)也保存不变;
#-g: 保存源文件的拥有群组;
#-o: 保存源文件的拥有人;
#-D: 保存源文件的装置属性(device)
#-t: 保存源文件的时间参数;
#-l: 忽略更新时间(mtime)的属性,档案比对上会比较快速;
#-z: 在数据传输时,加上压缩的参数;
#-e: 使用的通道协议,例如使用ssh通道, 则 -e ssh
#-a: 相当于 -rlptgoD, 所以这个-a是最常用的参数

3.透过 ssh 通道加密原本无加密的服务

后续补充

4.以ssh信道配合x server 传递图形接口

后续补充

5.ssh配合virtualbox虚拟机使用技巧

把四个虚拟网卡都打开.例如下图,网卡1用于连接嵌入式板卡用于开发,网卡2连接无线路由器用于上网,网卡3用于仅主机网络用于在图书馆等地方本地电脑连接ubuntu主机学习或工作,网卡4设置成NAT方式用于其他应用.

为了登录方便使用以下方式登录

  1. 使用hostname登录,这样就不要记住IP地址了,例如 ssh username@hostname
  2. 尽量可能的情况下设置成DHCP方式,换个环境就不需要设置IP地址了.
  3. 配置成密钥登录方式,这样登录时就不需要输入密码了,特别是使用vscode远程开发linux项目时,vscode可以省去许多中间输入密码的提示.

以上设置保证不管把电脑拿到何处,都不需要重新配置网络,同时调试嵌入式板卡时,还能同时上网安装软件.
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/317006.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【输入npm install express出现的报错】

目录 输入:npm install express,出现如下的报错 分析原因 方法1:用管理员的身份进行安装 方法2:更改文件夹的权限 输入:npm install express,出现如下的报错 分析原因: npm在执行安装过程中…

为什么要太空探索?未来万亿人口 人类移居太空是不可避免的。大语言模型是发现 贝索斯

管理的思考 「最以客户为中心」「果断」「如何决策」 贝索斯给亚马逊的使命是「世上最以客户为中心的公司」(以客户需求为起点,反向推动工作)。贝索斯给蓝色起源的使命是「世上最果断的公司」(我们将变得非常擅长在技术上恰当地冒险,并快速地作出那些决…

IMS基本架构

IP Multimedia Core Network Subsystem (IMS)商用已久,相对于CS domain的语音方案,IMS则是基于IETF定义的会话控制功能与多媒体传输功能通过IP-CAN实现的 全IP完整语音解决方案。 IMS能为无线和有线用户实现语音、视频、消息、数据等服务。便于运营商通过…

泰凌微Telink pwm的一个坑

泰凌微芯片输出PWM期间不能进入suspend 我的灯是低亮 所以代码中是 rgb_pwm_io_t[index].duty APP_PWM_MAX_VALUE - duty; 头文件 #ifndef APP_RGB_PWM_H_ #define APP_RGB_PWM_H_#define PWM_ID_R PWM3_ID // zxk 20230426 #define PWM_ID_G PWM2_ID #define PWM_ID_…

内联函数的作用

目的 主要为了提升程序运行速度。 分析 当程序调用一个函数时,程序暂停执行当前指令,跳到函数体处执行,在函数执行完后,返回原来的位置继续执行。如果该函数为内联函数,则不同跳,是因为该内联函数直接插…

Model::unguard()的作用

这是在生成假数据时碰见的,浅查了一下 Model::unguard() 是 Laravel 框架中的一个方法,它的作用是取消对 Eloquent 模型的属性赋值的安全性保护。 在默认情况下,Laravel 的 Eloquent 模型会对属性赋值做一些安全性检查,例如防止…

报告解读:中国新一代终端安全市场洞察,2023

报告解读 中国新一代终端安全市场洞察 2023 安全防御的“最前线” 01 混沌的企业安全 以下来自CSO们最关注的安全热点问题: Q1我们如何看待当下泛化的终端安全,混合的IT环境企业面临的安全变化? IDC:伴随着全球数字化转型的快…

win11操作系统下eNSP 安装及使用

eNSP是华为出品的一款网络设备模拟软件,非常的好用。在这款软件面世之前,博主也曾经使用过思科或其他厂家的模拟软件,要么界面不友好,要么操作很繁琐,并且大部分软件的运行环境配置很复杂,费九牛二虎之力都…

【C语言】作用域 和 生命周期

🚩 WRITE IN FRONT 🚩 🔎 介绍:"謓泽"正在路上朝着"攻城狮"方向"前进四" 🔎🏅 荣誉:2021|2022年度博客之星物联网与嵌入式开发TOP5|TOP4、2021|2222年获评…

分布式系统架构设计之分布式数据存储的备份恢复和监控故障排查

七、数据备份和恢复 在分布式数据存储中,数据备份和恢复是保障数据存储系统可靠性和容灾性的重要组成部分。这里会给大家介绍关于数据备份和恢复的关键考虑: 数据备份策略 定期备份:设定定期的数据备份计划,根据业务需求选择合…

深入数组扩展应用

一、字符串反转 例如:‘123abc’----->‘cba321’ 字符串方法实现: var str 123abcvar reversFn function(str) {var newStr for (var i str.length - 1; i > 0; i--) {newStr str[i]}return newStr }console.log(reversFn(str));数组方法实现&#xf…

【通关喜报】腾讯云TDSQL TCP/TCE、云运维tcp 12月认证考试,全员过关,年终冲刺!

2023年12月23日云贝教育有6位学员参加了腾讯云TDSQL-TCP以及TCE认证考试。都取得非常好的成绩~下面我们来看一下各位同学的理论考试和上机考试成绩吧~