• Linux SSH命令实战教程,提升你的服务器管理基本功!


    在这里插入图片描述

    前言

    大家好,又见面了,我是沐风晓月,本文是专栏【linux基本功-基础命令实战】的第62篇文章。

    专栏地址:[linux基本功-基础命令专栏] , 此专栏是沐风晓月对Linux常用命令的汇总,希望能够加深自己的印象,以及帮助到其他的小伙伴😉😉。

    另外为了帮助大家更好的学习英语,我创建了 从零开始学英语社区,欢迎点击进入社区,一起交流学习:
    点击可直达:

    从零开始学英语社区

    🏠个人主页:我是沐风晓月
    🧑个人简介:大家好,我是沐风晓月,双一流院校计算机专业😉😉
    💕 座右铭: 先努力成长自己,再帮助更多的人 ,一起加油进步🍺🍺🍺
    💕欢迎大家:这里是CSDN,我总结知识的地方,喜欢的话请三连,有问题请私信😘

    一. SSH命令介绍

    SSH(Secure Shell)是Linux系统中用于远程访问主机、传输数据的协议。通过使用SSH协议,可以在不同的计算机之间建立一个安全的通信管道,保证数据传输过程的安全性,并能够有效地防止未经授权的访问和利用攻击者的拦截和窃听。

    二. SSH语法格式及常用参数

    ssh常用的语法格式:

    ssh [options] [user@]hostname [command]
    
    
    • 1
    • 2

    常用参数如下:

    参数描述
    -p指定SSH服务器的端口号,默认值是22;
    -l指定登录远程主机的用户名;
    -q启用安静模式,不显示连接过程的提示信息;
    -X开启X11转发模式,允许在SSH会话中运行图形化界面程序;
    -i指定私钥文件的路径;
    -C启用压缩传输,加快数据传输速度;
    -t强制分配伪终端,即远程终端的操作和本地终端一样;
    -N不执行远程命令,仅作为端口转发或隧道使用;
    -f在后台运行SSH会话,不占用终端;
    -v启用详细模式,显示SSH连接和认证过程的详细信息。

    三. 参考案例

    3.1 查看ssh版本

    查看ssh的版本信息,可以使用:-V参数

    [root@mufeng163 ~]# ssh -V
    OpenSSH_7.4p1, OpenSSL 1.0.2k-fips  26 Jan 2017
    [root@mufeng163 ~]# 
    
    
    • 1
    • 2
    • 3
    • 4

    linux一般都自带openssh,只要能够远程登录,就说明ssh是已经开着的

    3.2 链接到远程主机

    连接远程主机的命令格式:

    • 方法一:

    ssh [远程主机用户名] @[远程服务器主机名或IP地址] -p port

    如果用root进程登录远程主机可以这样:

    [root@mufengssh]# ssh 192.168.0.22
    
    • 1

    普通用户登录是这样的:

    [root@mufeng163 ~]# useradd mufenggrow && echo 123456 | passwd --stdin mufenggrow
    更改用户 mufenggrow 的密码 。
    passwd:所有的身份验证令牌已经成功更新。
    
    [root@mufeng163 ~]# ssh mufenggrow@127.0.0.1
    
    The authenticity of host '127.0.0.1 (127.0.0.1)' can't be established.
    ECDSA key fingerprint is SHA256:xIsWK0miEQ+TcpYNJOt98XKh7W0ZtJYWbHgO0L0+z6A.
    ECDSA key fingerprint is MD5:c7:87:1a:9e:9c:fb:3f:fc:a0:e4:04:d6:8e:24:26:af.
    Are you sure you want to continue connecting (yes/no)? yes
    Warning: Permanently added '127.0.0.1' (ECDSA) to the list of known hosts.
    mufenggrow@127.0.0.1's password: 
    [mufenggrow@mufeng163 ~]$ 
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    第一次登录服务器时系统没有保存远程主机的信息,为了确认该主机身份会提示用户是否继续连
    接,输入yes 后登录,这时系统会将远程服务器信息写入用户主目录下的$HOME/.ssh/known_hosts文件中,下次再进行登录时因为保存有该主机信息就不会再提示了

    RSA算法基于一个十分简单的数论事实:将两个大素数相乘十分容易,但是想要对其乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥。

    • 方法二:
      ssh -l [远程主机用户名] [远程服务器主机名或IP 地址] -p port

    此方法了解即可:

    例:ssh -l mufenggrow 192.168.0.22
    注:-l login_name
    
    • 1
    • 2

    3.3 连接远程主机并指定端口

    首先修改一下ssh的端口号:

    [root@mufeng163 ~]# vim /etc/ssh/sshd_config 
    
    [root@mufeng163 ~]# grep ^Port /etc/ssh/sshd_config
    Port 10022
    
    • 1
    • 2
    • 3
    • 4

    修改完成后进行重启:

    [root@mufeng163 ~]# systemctl  restart sshd
    
    • 1

    开始登录:

    ssh 192.168.1.163 -p 10022
    
    • 1

    3.4 通过ssh运行远程的shell命令

    [root@mufeng163 ~]# ssh -t -p 10022 mufenggrow@127.0.0.1 'touch aaa;ls -l' 
    mufenggrow@127.0.0.1's password: 
    总用量 0
    -rw-rw-r--. 1 mufenggrow mufenggrow 0 610 10:42 aaa
    Connection to 127.0.0.1 closed.
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    -t选项分配了一个伪终端PTY,而-p选项指定了SSH连接使用的端口。命令ls -l放在单引号中传给远程服务器执行。

    3.5 设置登录时候的提示信息

    首先编辑一个文件,如bannertest.txt,文件内容自行定义。然后打开/etc/ssh/sshd_config文件并查找下面这样的行,把地址写对:

    [root@mufeng163 ~]# echo aaa > /root/bannertest.txt
    [root@mufeng163 ~]# vim /etc/ssh/sshd_config 
    [root@mufeng163 ~]# grep ^Banner !$
    grep ^Banner /etc/ssh/sshd_config
    Banner /root/bannertest.txt
    [root@mufeng163 ~]# systemctl  restart sshd
    [root@mufeng163 ~]# ssh 127.0.0.1
    The authenticity of host '127.0.0.1 (127.0.0.1)' can't be established.
    ECDSA key fingerprint is SHA256:xIsWK0miEQ+TcpYNJOt98XKh7W0ZtJYWbHgO0L0+z6A.
    ECDSA key fingerprint is MD5:c7:87:1a:9e:9c:fb:3f:fc:a0:e4:04:d6:8e:24:26:af.
    Are you sure you want to continue connecting (yes/no)? yes
    Warning: Permanently added '127.0.0.1' (ECDSA) to the list of known hosts.
    aaa
    root@127.0.0.1's password: 
    Last login: Sat Jun 10 10:53:35 2023 from 192.168.1.4
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    可以看到aaa,显示在文本中了。

    banner 和 /etc/motd的区别:

    SSH协议在建立连接之前,可以通过banner的形式向连接方发送欢迎信息或者警示信息;而/etc/motd属于Linux系统中用于向登录用户显示某些消息的文件。

    banner在客户端连接时就会被发送,不需要用户登录即可显示,通常被用于在SSH连接之前向用户展示重要的信息或者警告。在SSH服务器中,可以通过编辑/etc/ssh/sshd_config文件来配置banner信息。

    而/etc/motd 则是在用户登录后显示的一条信息,包括系统版本、当前登录用户、主机名等信息。系统管理员可以通过编辑/etc/motd文件来定制显示的信息,以便向用户提供更多信息。/etc/motd重启或动态更新后将重新显示。

    因此,banner和/etc/motd之间主要的区别是banner是在连接之前显示的欢迎信息或警告信息,而/etc/motd则是在登录之后以交互式的方式向用户显示信息。

    总结

    ssh命令在日常工作中,应用的比较广泛,一定要认真学习,记熟记牢常用参数。

    💕💕💕 好啦,这就是今天要分享给大家的全部内容了,我们下期再见!✨ ✨ ✨
    🍻🍻🍻如果你喜欢的话,就不要吝惜你的一键三连了~

    请添加图片描述
    在这里插入图片描述

  • 相关阅读:
    Ourphp建站系统存在SQL注入
    zabbix的自动发现和自动注册
    有能帮我看看这个怎么恢复吗?
    TinySnippet轻UI组件开发系列教程 — DataGrid选择事件
    MySql无法连接本地地址localhost
    iso9001认证需要什么资料
    拥有十亿美元的财富,靠外汇交易发家,还与查尔斯王子是知交
    semaphere部署,配置ldap
    后台运行python程序并查看运行的python 进程
    新加坡星银行项目组笔试题面试题
  • 原文地址:https://blog.csdn.net/wisdom_futrue/article/details/131139022