简单使用SSH

2024-04-01  本文已影响0人  Reone_JS

〇、服务器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

参数:

默认的端口号为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-keygen -f [fileName] -t rsa -C "user@host"

参数解析:

三、相关命令

  1. 查看是否启用了ssh: netstat -ntlp |grep ssh
  2. 启动、停止、重启服务
  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]
上一篇 下一篇

猜你喜欢

热点阅读