zoukankan      html  css  js  c++  java
  • Linux中的SSH服务

    目录

    SSH

    使用scp在两台Linux间传数据:  

    基于SSH做远程访问,可以使用ftp服务的相关指令sftp root@192.168.10.10

    Openssh公私钥验证:


    SSH

    SSH(Secure Shell)安全外壳协议,SSH是用来替代常见的不安全的网络应用的协议。比如Telnet、FTP,他们都是基于明文传输的协议,所以很不安全。Openssh 提供基于用户的身份验证,而且能够通过端口隧道转发不安全协议,在隧道里面,数据都是被加密的。
    SSH验证:

    1. password (sent  securely)
    2. RSA and DSA keys (公私钥验证)
    3. Kerberos
    4. s/key  and SecureID(OTP)

    相关联的RPM包:openssh(底层包)  、 openssh-clients 、 openssh-server
    服务器端安装: yum  install  openssh-server   (安装了openssh-server会自动安装openssh)  
    客户端安装: yum  install  openssh-clients      (安装了openssh-clients 会自动安装openssh) 
    卸载: yum  remove  openssh (卸载了openssh,然后会自动卸载openssh-server和openssh-clients)
    服务:/usr/sbin/sshd
    服务端口:tcp / 22
    服务器端配置文件:/etc/ssh/sshd_config
    客户端配置文件:  /etc/ssh/ssh_config 
    用法:ssh -p  22  root@192.168.10.10  ,如果配置文件中 /etc/ssh/ssh_config 默认是22号端口,则可以直接   ssh  root@192.168.10.10
    服务开启/关闭/重启/开机自启/开启不自启: systemctl  start / stop / restart / enable / disable  sshd

    ssh服务端的配置文件(部分):   /etc/ssh/sshd_config

    #Port 22                     //默认的端口号为22  修改端口时,取消注释
    #LoginGraceTime 2m           //ssh登录时,密码验证的超时时间,默认2分钟
    #PermitRootLogin yes         //是否允许以root用户身份登录
    #MaxAuthTries 6              //最大认证次数
    #MaxSessions 10              //登录Sessions保持的天数
    #PermitEmptyPasswords no     //是否允许空密码
    PasswordAuthentication yes   //开启密码认证
    

    在安装了SSH的机器上,会有ssh和sshd两个程序,分别是 /usr/sbin/sshd 和 /usr/bin/ssh 。

    sshd是服务端的程序,ssh是客户端的程序。我们现在用Xshell连接主机,此时主机上运行的是sshd程序。

    我们现在用该主机连接其他的主机,此时我们上面还会运行ssh程序

    在 /etc/ssh/ 下面有 ssh_config 和 sshd_config ,分别是客户端的配置文件和服务端的配置文件。

    使用scp在两台Linux间传数据:  


    本机传数据给目的主机

    • scp   /etc/fstab    root@192.168.10.10:/tmp     将本机 /etc/fstab 文件传送到目的主机的 /tmp目录下
    • scp  -r  /etc/ssh/  root@192.168.10.10:/tmp     将本机 /etc/ssh/ 文件夹传送到目的主机的 /tmp 目录下

    将目的主机的数据下载到本地

    • scp root@192.168.10.5:/etc/fstab  /tmp              将目的主机的 /etc/fstab 文件下载到本机的 /tmp 目录下
    • scp -r  root@192.168.10.5:/etc/ssh/  /tmp           将目的主机的 /etc/ssh/ 文件夹下载到本机的 /tmp 目录下

    基于SSH做远程访问,可以使用ftp服务的相关指令

    • sftp root@192.168.10.10
    • get  /etc/fstab   将远端主机的 /etc/fstab下载到本机
    • put  /etc/fstab   将本机的 /etc/fstab 上传到远端主机

    注:通过 sftp 成功登录,在对端主机的/var/log/wtmp是没有日志信息的。但是如果sftp登录失败,在对端主机的/var/log/btmp是有日志信息的。

    ​​​​查看本机有多少终端登录: who  和   w
    通过 who 显示远端10.0.0.1的地址通过ssh登录本机,然后本机开了两个tty终端
    然后再通过 w 可以查看他是几点登录的,当前正在运行的命令是top
    然后在通过 ps aux | grep pts 可以看到pts进程以及子进程

    Openssh公私钥验证:

    1. 在主机A上,使用 ssh-keygen,然后输入保存的文件名(默认为id_rsa)和自己的私钥,完成之后会在 ~/.ssh/ 生成的两个密钥: id_rsa(私钥) 和 id_rsa.pub(公钥)
    2. 私钥(id_rsa)保存在本地主机,公钥(id_rsa.pub)通过 ssh-copy-id root@192.168.1.200  会自动传递到对端B主机的~/.ssh/目录下,并且自动重命名为 authorized_keys
    3. 登录目标主机:  ssh  root@192.168.1.200    使用刚刚输入的私钥登录

    使用 ssh-keygen ,然后回车(默认是生成文件名为 id_rsa ,也可以自己手动输入修改),然后再输入私钥密码

    可以看到,在 /root/.ssh/  目录下已经生成了 id_rsa 私钥和 id_rsa.pub 公钥了

    进入/root/.ssh/目录,使用  ssh-copy-id root@192.168.1.200 命令,它会将 id_rsa.pub 公钥传到目标主机 ~/.ssh/ 目录下,并且会自动重命名为 authorized_keys

    可以看到,目标主机已经收到 id_rsa.pub公钥了,并且已经重命名为  authorized_keys

    然后在主机上 ssh root@192.168.1.200  然后输入我们自己的私钥就可以登录了。

     

  • 相关阅读:
    ComboBox联动DataGridview之Access表名联动表内容
    通过进程ID获取窗口句柄(微软)
    Excel操作类
    C# TextBox自动完成
    Mdi悬浮子窗体不超过主窗体边界
    Excel导入数据库_Excel2Sql
    C#连接SQL的增删改查
    用dynamic expression运行时访问dynamic object
    添加模式匹配
    对帐脚本语言的修改
  • 原文地址:https://www.cnblogs.com/csnd/p/11808032.html
Copyright © 2011-2022 走看看