OpenSSH 远程登录详解

1.什么是OpenSSH
  OpenSSH是SSH协议的免费开源实现,SSH协议族可以用来进行远程控制,并在计算机之间传送文件
  对比telnet、rcp ftp、rlogin、rsh这些使用明文传送密码的传统方式来说,SSH在用户认证过程和数据传输过程中都是加密的,具有安全性
  OpenSSH是一个典型的c/s架构服务
    服务器端:sshd   服务器配置文件:/etc/ssh/sshd_config
    客户端:ssh        客户端配置文件:/etc/ssh/ssh_config
    
2.SSH的认证过程    
    2.1基于口令认证(账号、密码)
    SSH登录:
    1.ssh USERNAME@HOST (如果不添加USERNAME则默认为root)
        example: ssh [email protected]
    2.ssh -i USERNAME HOST
        example: ssh -i robert 192.168.0.1
    3.ssh USERNAME@HOST 'COMMAND' 此方式不会登录到服务器,但是会在该服务器执行该条命令且结果会在客户端显示
        example: ssh [email protected] 'cat /etc/passwd'

    2.2基于秘钥认证(秘钥)过程
        2.2.1 生成秘钥
        ssh-keygen -t TYPE -f FILENAME -P PASSWD
        -t 指定秘钥类型,目前有rsa、dsa、ecdsa、rsa1、ed25519,其中rsa1为ssh v1的秘钥类型可以被破解,其他为v2,建议用v2
        -f 指定秘钥保存的路径和文件名,默认会保存在~/.ssh/目录下
        -P 提供旧密码,如果没有用''表示 example -P ''
        
        example: ssh-keygen -t rsa -f ./ssh/rsa_key -P ''
        生成后会有两个秘钥文件,一个是公钥rsa_key.pub 一个是私钥rsa_key
        
        2.2.2 将公钥复制到远程主机上
        两种方式:
            1.将rsa_key.pub中的秘钥追加到远程主机的家目录下.ssh/authorized-keys文件中,如果没有该目录或者文件,可手动创建
                但是.ssh/目录的权限必须要修改成700
            2.使用ssh-copy-id 命令指定需要复制的秘钥文件和远程主机,该命令会自动追加到authorized-keys文件中
                ssh-copy-id -i ~/.ssh/rsa_key USERNAME@HOST
        
        2.2.3 利用私钥登录
        ssh USERNAME@HOST 此时将不再需要输入口令密码
        
3.远程主机之间的文件传输
    scp SRC DEST
        SRC: 源文件 可以为本地或者远程主机的文件
        DEST:目标文件 可以为本地或远程主机
        example:
            1.将本地文件复制到远程主机
                scp /etc/passwd USERNAME@HOST:/PATH/TO/FILE
            2.将远程主机的文件复制到本地
                scp USERNAME@HOST:/etc/passwd /PATH/TO/FILE
    
        
    
    
  
  

你可能感兴趣的:(linux)