linux下ssh客户端命令远程登入系统详解

1.远程登入系统有常用两个服务telnet和ssh,都属于C/S架构

 telnet: 远程登录协议,端口为23/tcp

   特点:明文传输,不加密

 ssh: Secure SHell,端口为22/tcp有v1,v2两个版本

   特点:主机加密认证

       用户认证过程加密

       数据传输过程加密

sshv1:由于受到中间人***等安全隐患,现在用的不多

sshv2:相对sshv1,很安全,其认证过程有两种:基于口令认证及基于密钥认证

2.Linux系统程序是openSSH

服务器端:sshd, 配置文件/etc/ssh/sshd_config

客户端:ssh, 配置文件/etc/ssh/ssh_config

     ssh-keygen: 密钥生成器

     ssh-copy-id: 将公钥传输至远程服务器

     scp:跨主机安全复制工具

ssh命令使用方法如下:登入远程主机工具

     ssh 用户名@[主机名或]IP地址

     ssh -l 用户名 [主机名或]IP地址

     ssh 用户名@[主机名或]IP地址 '命令'

scp命令使用方法如cp命令一样,即跨主机安全复制工具

     scp 源文件路径 目标文件路径 

     scp 用户名@[远程主机名或]远程IP地址:文件路径  目标文件路径

     scp 本地文件路径  用户名@[远程主机名或]远程IP地址:文件路径

ssh-keygen: 密钥生成器

     -t rsa加密类型

         ~/.ssh/id_rsa 生成的私钥

         ~/.ssh/id_rsa.pub 生成的公钥

     -f KEY文件路径

     -P '': 指定加密私钥的密码

ssh-copy-id使用方法:将公钥传输至远程服务器

   ssh-copy-id -i ~/.ssh/id_rsa.pub 用户名@[远程主机名或]远程IP地址

           -i ~/.ssh/id_rsa.pub 生成的公钥

将生成的公钥保存到远程主机某用户的家目录下.ssh/authorized_keys或.ssh/authorized_keys2文件

3.基于主机认证:第一次远程ssh root@1.1.1.13主机,询问是否连接?输入yes后,

   会自动生成.ssh/know_hosts主机认证文件,本次成功连接后,下次再远程连接不再询问

wKiom1crROHC2xRTAAK_cLb9vw8764.jpg          4.基于口令的认证:ssh root@1.1.1.13 必须输入密码才能登入

wKiom1crRfDSfsLKAACTs0MfUXA701.jpg

 5.基于密钥的认证,也就是无需输入密码,直接登入至远程主机

   5.1;第一种实现方法:本主机IP为1.1.1.18,远程主机IP为1.1.1.13

    ssh-keygen -t rsa 在家目录下生成公私钥

    scp .ssh/id_rsa.pub root@1.1.1.13:~ 将公钥传至远程主机家目录下:如下图wKioL1crSIPz4-aFAAHw-djbXyc384.jpg           mkdir .ssh   在远程1.1.1.13主机上创建.ssh目录

    chmod 700 .ssh 将目录权限改成755

    cat id_rsa.pub >> .ssh/authorized_keys 将刚复制过来公钥追加至.ssh/authorized_keys文件

wKioL1crSSCwTH-mAAIJ2eqDpsI287.jpg

   ssh root@1.1.1.13 登入远程主机无需输入密码直接进入哈,如下图

wKioL1crSjDSFvSnAABn5ixoeHg122.jpg

5.2.第二种实现方法:

  rm -rf .ssh/*  删除本地主机公私钥文件,删除远程主机私钥文件

  ssh-keygen -f .ssh/id_rsa -P ''  -次生成公私钥文件

  ssh-copy-id -i .ssh/id_rsa.pub root@1.1.1.13 

         将公钥传至远程主机家目录下,会自动创建.ssh/id_rsa.pub文件,比scp方便

  ssh root@1.1.1.13 无需密码,直接登入远程主机,如下图

  wKioL1crS6SQ8aGBAAJqHaUShlA542.jpg

     注意:基于密钥认证前提必须将Selinux关闭,否则还会提示输入密码