美文网首页
简单使用SSH

简单使用SSH

作者: Reone_JS | 来源:发表于2024-04-01 20:45 被阅读0次

    〇、服务器SSH免密登录

    1. 本地生成公钥和私钥 ssh-keygen -t rsa
    2. 找到文件~/.ssh/id_rsa.pub,复制文件内全部内容
    3. 登录服务器,找到~/.ssh/authorized_keys文件,如果没有创建一个
    4. 将复制的内容copy到authorized_keys文件中,保存

    一、基本语法

    1. 登录
    ssh -p 22 user@host
    

    参数:

    • -p:指定端口号。
    • user:登录的用户名。
    • host:登录的主机。

    默认的端口号为22,当端口号为22的时候,可以省略

    1. 注销
    exit
    
    1. 远程操作
    # 例
    ssh user@host 'netstat -tln |grep 1080'
    
    1. 端口转发
      转发参数:
    -C:压缩数据
    -f :后台认证用户/密码,通常和-N连用,不用登录到远程主机。
    -N :不执行脚本或命令,通常与-f连用。
    -g :在-L/-R/-D参数中,允许远程主机连接到建立的转发的端口,如果不加这个参数,只允许本地主机建立连接。
    -L : 本地端口:目标IP:目标端口
    -D : 动态端口转发
    -R : 远程端口转发
    -T :不分配 TTY 只做代理用
    -q :安静模式,不输出 错误/警告 信息
    
    • 本地转发
    #把发到本地的某个端口请求,转发到远程的某台机器上面
    ssh -L [本地地址:]本地端口:远程地址:远程端口 远程用户@远程地址
    
    #把发给远程机器的某个端口请求,转发到本地的机器上面
    ssh -R [远程地址:]远程端口:本地地址:本地端口 远程用户@远程地址
    

    二、公私钥登录

    1. 原理说明
        1. 首先在客户端生成一对密钥(ssh-keygen)
        2. 并将客户端的公钥ssh-copy-id 拷贝到服务端
        3. 当客户端再次发送一个连接请求,包括ip、用户名
        4. 服务端得到客户端的请求后,会到authorized_keys中查找,如果有响应的IP和用户,就会随机生成一个字符串,例如:qwer
        5. 服务端将使用客户端拷贝过来的公钥进行加密,然后发送给客户端
        6. 得到服务端发来的消息后,客户端会使用私钥进行解密,然后将解密后的字符串发送给服务端
        7. 服务端接受到客户端发来的字符串后,跟之前的字符串进行对比,如果一致,就允许免密码登录
    
    1. 生成公钥和私钥
      ssh-keygen命令,可以生成公钥和私钥,默认生成到用户的家目录下的.ssh文件夹里面
    ssh-keygen -t rsa
    
    • 私钥默认会被保存在 ~/.ssh/id_rsa
    • 公钥默认会被保存在 ~/.ssh/id_rsa.pub
    #例
    ssh-keygen -f [fileName] -t rsa -C "user@host"
    

    参数解析:

    • -f 指定要生成文件的文件名称
    • -t 设置认定方式,值为rsa,即非对称加密;或dsa,即数字签名和认证
    • -c 指定公钥中的备注信息

    三、相关命令

    1. 查看是否启用了ssh: netstat -ntlp |grep ssh
    2. 启动、停止、重启服务
    • 开启ssh服务 service sshd start
    • 停止ssh服务 service sshd stop
    • 重启ssh服务 service sshd restart
    1. 配置ssh-server,配置文件位于/etc/ssh/sshd_config
    2. 默认端口为22,为了安全,一般自定义为其他端口,然后重启

    常用命令

    1. 复制本地文件到远程主机:
    # 文件
    scp file_name username@hostname:/remote/directory
    #目录
    scp -r local_directory username@hostname:/remote/directory
    
    1. 拉取远程文件到本地
    scp username@hostname:/remote/directory/file .
    
    1. 执行远程命令
    ssh username@hostname [commond]
    

    相关文章

      网友评论

          本文标题:简单使用SSH

          本文链接:https://www.haomeiwen.com/subject/vuvitjtx.html