惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Hacker News: Ask HN
Hacker News: Ask HN
H
Heimdal Security Blog
S
Secure Thoughts
Help Net Security
Help Net Security
The Hacker News
The Hacker News
T
Threatpost
T
Troy Hunt's Blog
T
Threat Research - Cisco Blogs
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Simon Willison's Weblog
Simon Willison's Weblog
WordPress大学
WordPress大学
TaoSecurity Blog
TaoSecurity Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Cisco Talos Blog
Cisco Talos Blog
Microsoft Security Blog
Microsoft Security Blog
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
阮一峰的网络日志
阮一峰的网络日志
Security Latest
Security Latest
Forbes - Security
Forbes - Security
The Last Watchdog
The Last Watchdog
Recent Commits to openclaw:main
Recent Commits to openclaw:main
月光博客
月光博客
博客园 - 三生石上(FineUI控件)
A
About on SuperTechFans
C
Cybersecurity and Infrastructure Security Agency CISA
小众软件
小众软件
Microsoft Azure Blog
Microsoft Azure Blog
Google Online Security Blog
Google Online Security Blog
N
Netflix TechBlog - Medium
W
WeLiveSecurity
Google DeepMind News
Google DeepMind News
S
Securelist
Jina AI
Jina AI
酷 壳 – CoolShell
酷 壳 – CoolShell
G
GRAHAM CLULEY
G
Google Developers Blog
aimingoo的专栏
aimingoo的专栏
C
Cisco Blogs
量子位
有赞技术团队
有赞技术团队
雷峰网
雷峰网
Google DeepMind News
Google DeepMind News
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
S
SegmentFault 最新的问题
T
The Exploit Database - CXSecurity.com
MyScale Blog
MyScale Blog
A
Arctic Wolf
T
Tenable Blog
P
Privacy & Cybersecurity Law Blog

Yee's Blog

腾讯云/轻量云 安装ArchLinux的个人记录 记录我的联想M720Q Arch Sway窗口管理器的安装和配置过程 Jenkins Linux安装 腾讯课堂、钉钉在线网课视频直播回放下载离线播放 Ceph块设备对RBD块设备操作LVM创建PV时报错 Ceph映射RBD块设备 2020年9月26日前端部门Vue考核 2020年9月26日后端部门Python考核 Nginx反向代理下载传输超过1G大文件时断开问题 Windows Server 2019 Datacenter M720q 安装记录 Ceph块设备基础及快照、克隆操作 从Ceph集群中删除OSD节点 Centos8配置 chrony NTP服务端及客户端 搭建Ceph集群 Ceph硬件准备 OSD与Pool池的常见操作及管理 Ceph用户管理 MacOS睡眠管理——让你的Mac睡的更香 初中古诗文必背篇目 Ansible 技巧之场 Ansible 包含和导入文件 Ansible 学习文档 Ansible 主机模式 Ansible 角色 Ansible 调整连接数 Splunk数据搜索和报表 Ansible 常用模块 Ansible 变量和事实 Ansible 任务控制 Ansible Playbook Ansible 基础概念 42Team-Flask框架-HTTP协议快速了解 42Team-Flask框架-路由和视图 42Team-Flask框架-请求与响应 42Team-Flask框架 42Team-Flask框架-Flask介绍 42Team-Flask框架-使用Pycharm来构建一个全新的Flask项目 How to install RHEL8(Centos) on Dell R710/R610 server Centos8安装Docker报错解决方案 Centos8安装Docker后容器内无法访问网络 Docker或Podman容器内无法解析DNS问题多种解决方案 使用NetworkManager来管理树莓派Ubuntu系统网络以及个人的体验优化 Linux 存储设备的挂载及识别 Firewalld 防火墙常用指令教程-常用规则(禁止Ping | 放行端口) Linux 查找系统中的文件 Linux 守护进程和控制服务 42Team小组_Linux基础培训课件 如何在AmazeUI中当改变select标签后触发Vue方法的问题 使用Docker部署安装WordPress博客平台 在Raspberry树莓派中搭建NFS存储服务器 在 树莓派 Linux 中搭建匿名 danted socks5 代理服务器 HTTP与HTTPS区别随笔 Bash/Shell学习笔记
Linux SSH远程访问
本文作者: YeeFire · 2020-02-21 · via Yee's Blog
  • SSH 是什么
  • SSH的食用方法
    • 登录远程设备系统
      • 使用远程系统的用户名来登录远程设备系统
      • 使用当前用户身份,登录远程设备的系统
    • 使用w命令看看谁现在登陆了这台系统
  • SSH公钥
  • 配置SSH免密登录
    • ssh-keygen生成密钥
    • ssh-copy-id发送公钥

SSHOpenSSH Secure Shell通用的简称,OpenSSH Secure Shell(SSH)是用来在远程设备的操作系统上安全运行Shell,只需要提供远程目的设备系统的用户信息并且完成身份认证就可以对登录到该系统执行命令了。

SSH的食用方法

ssh [-46AaCfGgKkMNnqsTtVvXxYy] [-B bind_interface] [-b bind_address] [-c cipher_spec] [-D [bind_address:]port]
[-E log_file] [-e escape_char] [-F configfile] [-I pkcs11] [-i identity_file] [-J destination] [-L address]
[-l login_name] [-m mac_spec] [-O ctl_cmd] [-o option] [-p port] [-Q query_option] [-R address] [-S ctl_path]
[-W host:port] [-w local_tun[:remote_tun]] destination [command]

这么看的话选项和参数有点多!不过常用的仅仅几个,下面的例子会介绍SSH的常见使用方法。

默认SSH服务器的远程端口是22,也就是说在没有指定[-p port]选项时假定ssh服务端口就是22。如果你出于安全考虑,将OpenSSH服务器上对外暴露的端口修改为其他端口号上,那么在远程访问服务器时使用ssh需要手动指定-p 端口号才能与你的SSH服务器建立连接。

登录远程设备系统

使用远程系统的用户名来登录远程设备系统

ssh <username>@<remote_address>

参数1(username):指定要登录到远程设备的用户名

参数2(remote_address):远程设备的IP地址或域名

例如:

ssh root@yeefire.com

root用户身份(用户名)来登录yeefire.com域名的IP所指向的远程服务器系统。

使用当前用户身份,登录远程设备的系统

ssh yeefire.com

使用你执行ssh命令的这个用户身份来登录到yeefire.com上,假定你现在的用户身份名为root那么可以理解为上面的命令被解析为ssh root@yeefire.com

使用w命令看看谁现在登陆了这台系统

w

w

14:55:29 up 17:01, 1 user, load average: 1.39, 1.49, 1.52
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
pi pts/2 192.168.1.194 12:53 0.00s 0.11s 0.01s w

在上面可以看到,用户名,使用的是什么终端,从些远程位置进行了登录以及登陆时间。

SSH公钥

为了确保与服务器之间保持安全的网络通信,当从SSH客户端登录远程设备系统时,在该客户端开始登陆前,客户端会向目标索取服务器公钥,如果第一次与服务器链接会让你确认服务器公钥的准确性(防止中间人攻击),一旦接受了公钥,就会保存在~/.ssh/known_hosts文件中,并且每次与远程设备系统设备链接时会与本机系统第一次保存的公钥进行比对,如果发现不匹配则立即拒绝并断开链接,并假定网络通信已遭劫持或服务器被入侵。

但是,当你给远程的设备重做了系统,由于重新生成了公钥会和你本机系统SSH客户端存储的公钥不一致,所以也会断开连接。如果你确信你当前的网络不存在安全问题,你可以在~/.ssh/known_hosts文件中删除旧的公钥记录,便可以重新与远程服务器进行建立可靠连接并登录。

配置SSH免密登录

使用公钥身份验证即可对SSH登录进行身份验证,而不需要输入密码。执行ssh-keygen命令生成密钥,其中生成的私钥保存在~./ssh/id_rsa,公钥保存在~./ssh/id_rsa.pub

注意,你的私钥一定要保存好,它现在相当于你的登录密码!如果私钥被盗取,那么其他人可以利用你的私钥毫不客气地远程SSH登录到你的系统并窃取你珍藏许久的小电影。

下面是配置免密SSH登录的顺序和例子:

ssh-keygen生成密钥

在你的本机系统上执行 ssh-keygen

ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/username/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/username/.ssh/id_rsa.
Your public key has been saved in /home/username/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:0kyfGMx571yKfjmtmMwnEYeJp2BYgf5yi0qWXCr18/k username@centos8
The key's randomart image is:
+---[RSA 3072]----+
| ... |
| . .o . |
| . o *..o |
| o o+.==o. |
| . .o..Sooo. . |
| o =. o.. .+ o |
|. * o+ . ..+o |
| + .o.. +.o= . |
| .. o.E *+.o |
+----[SHA256]-----+

在生成密钥的过程中,会询问你密钥保存位置。也会询问你”二次认证”的密码(不需要再为私钥设置密码,全部回车即可!我们目的就是配置免密登录。如果你此处输入了密码,那么在使用私钥认证的时候仍然需要进行密码认证。但是设置私钥密码的好处是当你私钥被盗后,你有时间在对方破解你的私钥密码时重新生成一对密钥来保护你的系统)。此处全部直接回车即可。

ssh-copy-id发送公钥

现在已经生成了本机的私钥与公钥,将本机的公钥发送给你的远程设备系统即可实现免密登录。

ssh-copy-id <username>@<remote_address>

参数1(username):指定要登录到远程设备的用户名

参数2(remote_address):远程设备的IP地址或域名

之后输入SSH登录密码,便会将公钥发送到远程设备的默认公钥存储位置存储。

现在,你当你ssh <username>@<remote_address>时,你会发现不需要输入密码即可登录到远程设备的系统上了。