当前位置:   article > 正文

SSH 命令常见用法_ssh的使用方法,2024年最新大牛深入讲解

ssh 命令

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新软件测试全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上软件测试知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以添加V获取:vip1024b (备注软件测试)
img

正文

8 、 直 接 连 接到 只 能 通过机 主机 B 连 接的主机A

ssh -t hostA ssh hostB

当然,你要能访问主机 A 才行。

9 、 创 建到 目 标 主机的 持久 化 连 接

ssh -MNf @

在后台创建到目标主机的持久化连接,将这
个命令和你~/.ssh/config 中的配置结合使
用:

Host host
ControlPath ~/.ssh/master-%r@%h:%p
ControlMaster no

所有到目标主机的 SSH 连接都将使用持久化
SSH 套接字,如果你使用 SSH 定期同步文件
(使用 rsync/sftp/cvs/svn),这个命令
将非常有用,因为每次打开一个 SSH 连接时不
会创建新的套接字。

10 、 通过 SSH 连 接 屏 幕

ssh -t remote_host screen –r

直接连接到远程屏幕会话(节省了无用的父
bash 进程)。

11 、 端 口 检测 ( 敲 门 )

knock 3000 4000 5000 && ssh -p
user@host && knock 5000
4000 3000

在一个端口上敲一下打开某个服务的端口
(如 SSH),再敲一下关闭该端口,需要先安
装 knockd,下面是一个配置文件示例。

[options]
logfile = /var/log/knockd.log
[openSSH]
sequence = 3000,4000,5000
seq_timeout = 5
command = /sbin/iptables -A INPUT -i eth0
-s %IP% -p tcp –dport 22 -j ACCEPT
tcpflags = syn
[closeSSH]
sequence = 5000,4000,3000
seq_timeout = 5
command = /sbin/iptables -D INPUT -i eth0
-s %IP% -p tcp –dport 22 -j ACCEPT
tcpflags = syn

12 、 删除 文本文件中的一行内 容 , 有 用的修复

ssh-keygen -R <the_offending_host>

在这种情况下,最好使用专业的工具。

13 、 通过 SSH 运行 复 杂的 远程 程 shell 命令

ssh host -l user $(<cmd.txt)

更具移植性的版本:

ssh host -l user “cat cmd.txt

14 、过 通过 SSH 将 将 MySQL 数据库 复 制到新服
务器

mysqldump –add-drop-table –extended-
insert –force –log-error=error.log
-uUSER -pPASS OLD_DB_NAME | ssh -C
user@newhost “mysql -uUSER -pPASS
NEW_DB_NAME”

通过压缩的 SSH 隧道 Dump 一个 MySQL 数据
库,将其作为输入传递给 mysql 命令,我认为
这是迁移数据库到新服务器最快最好的方法。

15 、 删除 文本文件中的一行, 修复 “SSH 主
机 密 钥 更 改 ” 的 警 告

sed -i 8d ~/.ssh/known_hosts

16 、从一有 台没有 SSH-COPY-ID 命令 的主机
将 你的 SSH 公 钥 复 制到服务器

cat ~/.ssh/id_rsa.pub | ssh user@machine
“mkdir ~/.ssh; cat >>
~/.ssh/authorized_keys”

如果你使用 Mac OS X 或其 它没有 ssh-
copy-id 命令的*nix 变种,这个命令可以将
你的公钥复制到远程主机,因此你照样可以实
现无密码 SSH 登录。

17 、 实时 时 SSH 网络 吞吐 量测试

yes | pv | ssh $host “cat > /dev/null”

通过 SSH 连接到主机,显示实时的传输速度,
将所有传输数据指向/dev/null,需要先安装
pv。
如果是 Debian:

apt-get install pv

如果是 Fedora:

yum install pv

(可能需要启用额外的软件仓库)。

18 、如 果 建 立 一个可以 重 新 连 接的 远程 程 GNU
screen

ssh -t user@some.domain.com
/usr/bin/screen –xRR

人们总是喜欢在一个文本终端中打开许多
shell , 如 果 会 话 突 然 中 断 , 或 你 按 下 了
“Ctrl-a d”,远程主机上的 shell 不会受
到丝毫影响,你可以重新连接,其它有用的
screen 命 令 有 “ Ctrl-a c” ( 打 开 新 的
shell)和“Ctrl-a a”(在 shell 之间来回
切换),请访问

禁用 root 用户登录

禁用 root 用户登录前,确认普通用户可以以 root 身份登录。例如,允许用户 vivek 使用 sudo 命令以 root 身份登录。

在 Debian/Ubuntu 系统中如何将用户 vivek 添加到 sudo 组中

允许 sudo 组中的用户执行任何命令。 将用户 vivek 添加到 sudo 组中:

$ sudo adduser vivek sudo

使用 id 命令 验证用户组。

$ id vivek

在 CentOS/RHEL 系统中如何将用户 vivek 添加到 sudo 组中

在 CentOS/RHEL 和 Fedora 系统中允许 wheel 组中的用户执行所有的命令。使用 usermod 命令将用户 vivek 添加到 wheel 组中:

$ sudo usermod -aG wheel vivek
$ id vivek

测试 sudo 权限并禁用 ssh root 登录
测试并确保用户 vivek 可以以 root 身份登录执行以下命令:

$ sudo -i
$ sudo /etc/init.d/sshd status
$ sudo systemctl status httpd

添加以下内容到 sshd_config 文件中来禁用 root 登录:

PermitRootLogin no
ChallengeResponseAuthentication no
PasswordAuthentication no
UsePAM no

禁用密码登录

所有的密码登录都应该禁用,仅留下公匙登录。添加以下内容到 sshd_config 文件中:

AuthenticationMethods publickey
PubkeyAuthentication yes

CentOS 6.x/RHEL 6.x 系统中老版本的 sshd 用户可以使用以下设置:

PubkeyAuthentication yes

限制用户的 ssh 访问

默认状态下,所有的系统用户都可以使用密码或公匙登录。但是有些时候需要为 FTP 或者 email 服务创建 UNIX/Linux 用户。然而,这些用户也可以使用 ssh 登录系统。他们将获得访问系统工具的完整权限,包括编译器和诸如 Perl、Python(可以打开网络端口干很多疯狂的事情)等的脚本语言。通过添加以下内容到 sshd_config 文件中来仅允许用户 root、vivek 和 jerry 通过 SSH 登录系统:

AllowUsers vivek jerry

当然,你也可以添加以下内容到 sshd_config 文件中来达到仅拒绝一部分用户通过 SSH 登录系统的效果。

DenyUsers root saroj anjali foo

你也可以通过配置 Linux PAM 来禁用或允许用户通过 sshd 登录。也可以允许或禁止一个用户组列表通过 ssh 登录系统

禁用空密码

你需要明确禁止空密码账户远程登录系统,更新 sshd_config 文件的以下内容:

PermitEmptyPasswords no

为 ssh 用户或者密匙使用强密码

为密匙使用强密码和短语的重要性再怎么强调都不过分。暴力破解可以起作用就是因为用户使用了基于字典的密码。你可以强制用户避开字典密码并使用约翰的开膛手工具来检测弱密码。以下是一个随机密码生成器(放到你的 ~/.bashrc 下):

genpasswd() {
local l= 1 [ " 1 [ " 1["l" == “” ] && l=20
tr -dc A-Za-z0-9_ < /dev/urandom | head -c ${l} | xargs

运行:

genpasswd 16

输出:

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注软件测试)
img

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
l l= 1 [ " 1 [ " 1["l" == “” ] && l=20
tr -dc A-Za-z0-9_ < /dev/urandom | head -c ${l} | xargs

运行:

genpasswd 16

输出:

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注软件测试)
[外链图片转存中…(img-TyN1Lhti-1713417262648)]

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/840034
推荐阅读
相关标签
  

闽ICP备14008679号