您的位置:首页 > 运维架构 > Linux

Python全栈 Linux基础之4.远程管理命令

2020-03-12 18:43 507 查看

文章目录

  • 二、网络配置命令
  • 三、远程登录
  • 一、关机重启命令

    shutdown命令可以安全关闭或者重新启动系统。直接使用 shotdown命令,默认表示1分钟后关机。
    命令格式:

    $shutdown [选项] <参数>
    选项 功能
    [-r] 重新启动
    [-c] 取消之前的关机计划

    参数
    [时间]:设置多久时间后执行shutdown指令;
    [警告信息]:要传送给所有登入用户的信息。

    举例:

    • 一分钟以后关机
    $shutdown
    • 立刻关机
    $shutdown now
    • 在今天的19:00关机
    $shutdown 19:00
    • 10分钟以后关机
    $shutdown +10

    • 10分钟以后关机,同时发出警告信息
    $shutdown +10 "System will shutdown after 10 minutes"
    • 取消关机计划
    $shutdown -c
    • 重启
    $shutdown -r
    • 马上重启
    $shutdown -r now

    reboot
    命令也可以用来重新启动正在运行的Linux操作系统,和
    shutdown -r now
    一样。

    二、网络配置命令

    命令 功能
    ifconfig configure a network interface,查看/配置计算机当前的网卡信息
    ping 测试目标ip地址的连接是否正常

    1.ifconfig命令

    ifconfig
    命令用于配置和显示Linux中网卡信息。
    查看网卡信息:

    $ifconfig


    快速定位IP地址:

    $ifconfig | grep inet


    说明:
    一台计算机中可能会有一个物理网卡和多个虚拟网卡,在Linux中物理网卡名字一般是ensXX
    127.0.0.1是一个比较特殊的地址,称之为本地回环地址,可以用来测试本机网卡是否正常工作。#

    2.ping命令

    ping命令用来测试主机之间网络的连通性。
    执行ping指令会使用ICMP传输协议,发出要求回应的信息。一般用于检测计算机之间的网络通讯是否正常。
    由于ping命令的工作原理,服务器人员给往往将ping用作动词。经常说:“ping一下某某计算机”。
    ping目标主机

    $ping IP地址

    ping 180.76.76.76


    检测本地网卡是否正常

    $ping 127.0.0.1


    说明
    结束ping的执行使用Ctrl+C。在Linux中终止一个终端程序绝大多数都可以使用Ctrl+C。

    三、远程登录

    1.SSH远程登录

    SSH(Secure Shell) 是一种网络协议,用于计算机之间的加密登录。
    最早的时候,互联网通信都是明文通信,一旦被截获,内容就暴露无疑。1995年,芬兰学者Tatu Ylonen设计了SSH协议,将登录信息全部加密,成为互联网安全的一个基本解决方案,迅速在全世界获得推广,目前已经成为Linux系统的标准配置。
    OpenSSH
    SSH只是一种协议,存在多种实现OpenSSH就是其中一种,它是一款软件,应用非常广泛,在Mac以及Ubuntu中都自带OpenSSH。
    SSH客户端命令

    ssh [-p port] user@remote

    其中:

    • user 是远程端上的用户名,默认是当前用户;
    • remote是远程端的地址,可以是IP/域名;
    • port是远程端的端口,默认是22。

    Ubuntu下SSH分:

    • openssh-client(客户端)
    • openssh-server (服务端)

    检测是否有开启ssh服务

    $ps -e | grep ssh


    说明:
    其中sshd 为server端的守护进程,如果没有出现sshd,那么很有可能你的系统中没有安装server端。或者ssh服务没有启动。
    开启ssh服务

    sudo /etc/init.d/ssh start


    安装openssh-server
    如果显示上述命令找不到,是因为我们的Ubuntu系统默认没有服务端,所以可以通过下面命令安装。

    $sudo apt-get install openssh-server


    可能出现错误:

    $ sudo apt-get install openssh-server
    正在读取软件包列表... 完成
    正在分析软件包的依赖关系树
    正在读取状态信息... 完成
    有一些软件包无法被安装。如果您用的是 unstable 发行版,这也许是
    因为系统无法达到您要求的状态造成的。该版本中可能会有一些您需要的软件
    包尚未被创建或是它们已被从新到(Incoming)目录移出。
    下列信息可能会对解决问题有所帮助:
    
    下列软件包有未满足的依赖关系:
    openssh-server : 依赖: openssh-client (= 1:7.1p1-4)
    依赖: openssh-sftp-server 但是它将不会被安装
    推荐: ssh-import-id 但是它将不会被安装
    E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系。

    原因:
    openssh-server 需要依赖openssh-client,但是很明显,我们系统自带的版本和目前要安装的server版本不同。所以我们重新安装一下client版本。
    解决:

    corley@ubuntu:~$ sudo apt-get install openssh-client=1:7.1p1-4
    正在读取软件包列表... 完成
    正在分析软件包的依赖关系树
    正在读取状态信息... 完成
    建议安装:
    ssh-askpass libpam-ssh keychain monkeysphere
    下列软件包将被【降级】:
    openssh-client
    升级了 0 个软件包,新安装了 0 个软件包,降级了 1 个软件包,要卸载 0 个软件包,有 0 个软件包未被升级。
    需要下载 581 kB 的归档。
    解压缩后将会空出 36.9 kB 的空间。
    您希望继续执行吗? [Y/n] y
    获取:1 http://mirror.neu.edu.cn/ubuntu xenial/main amd64 openssh-client amd64 1:7.1p1-4 [581 kB]
    已下载 581 kB,耗时 33秒 (17.6 kB/s)
    dpkg:警告:即将把 openssh-client 从 1:7.2p2-4 降级到 1:7.1p1-4
    正在将 openssh-client (1:7.1p1-4) 解包到 (1:7.2p2-4) 上 ...
    正在处理用于 man-db (2.7.5-1) 的触发器 ...
    正在设置 openssh-client (1:7.1p1-4) ...
    正在安装新版本配置文件 /etc/ssh/ssh_config ...

    这样可以看到降级成功,然后我们再次安装openssh-server就可以了。

    2.远程拷贝指令

    SCP(Secure copy) 是linux系统下基于ssh登陆进行安全的远程文件拷贝命令。
    scp是基于ssh的,连接后,不需要登录,直接拷贝。
    命令格式:

    scp -P port 源文件路径 目标文件路径
    # 将本地目录下的123.txt拷贝到远程桌面目录下
    scp -P port 123.txt user@remote:Desktop/123.txt
    
    # 把远程桌面目录下的123.txt文件复制到本地当前目录下
    scp -P port user@remote:Desktop/123.txt 123.txt
    
    # 加上 -r 选项可以传送文件夹
    # 把当前目录下的demo文件夹复制到远程家目录下的Desktop
    scp -r demo user@remote:Desktop
    
    # 把远程家目录下的Desktop复制到当前目录下的demo文件夹
    scp -r user@remote:Desktop demo
    选项 功能
    -r 若给出的源文件是目录文件,则 scp 将递归复制该目录下的所有子目录和文件,目标文件必须为一个目录名
    -P 若远程 SSH 服务器的端口不是 22,需要使用大写字母 -P 选项指定端口

    例如:

    #从服务器端复制到客户端
    scp -P 22 cl@192.168.0.113:Desktop/corley/A/a/123.txt .
    
    #从客户端复制到服务器端
    scp -P 22 124.txt cl@192.168.0.113:Desktop/corley/A/a/

    3.SSH登录原理

    加密:
    防止中间人攻击。
    常用加密方式为非对称加密:
    公钥 – 加密数据;
    私钥 – 解密数据。
    登录过程:

    • 远程主机收到用户的登录请求,将自己的公钥发送给用户;
    • 用户使用这个公钥,将登录密码加密后,发送回来;
    • 远程主机使用自己的私钥解密登录密码,如果密码正确,就同意登录。

    4.SSH常见配置

    免密登录

    • 配置公钥:
      执行
      ssh-keygen
      即可生成SSH钥匙,一路回车即可。
    • 上传公钥到服务器:
      执行
      ssh-copy-id -p port user@remote
      ,可以让远程服务器记住我们的公钥。
      ssh-copy-id cl@192.168.0.113

    配置别名

    每次都输入

    ssh -p port user@remote
    ,非常不方便,而且还不好记忆。
    而配置别名可以让我们进一步偷懒,譬如用:
    ssh mac
    来替代上面这么一长串,那么就在~/.ssh/config里面追加以下内容:

    Host xxx
    HostName ip地址
    User H
    Port 22

    Host clmac
    HostName 192.168.0.113
    User cl
    Port 22

    保存之后,即可用

    ssh clmac
    实现远程登录了,scp同样可以使用。

    • 点赞 6
    • 收藏
    • 分享
    • 文章举报
    cutercorley 发布了86 篇原创文章 · 获赞 571 · 访问量 16万+ 私信 关注
    内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
    标签: