ssh 完整

ssh简单使用

ssh -f [-o 参数项目] [-p 主机端口] [账号]@[主机] [执行的命令]

使用-f 参数执行命令时无需等待命令执行完毕才退出ssh登陆,比如要重启远程主机的正确方法是

ssh -f root@192.168.1.1 root

sftp

sftp [用户名]@[远程主机]

进入之后与一般的ftp 没有差别了,可以使用sftp 完全替代的ftp

scp

如果知道服务器上面的目录结构,可以简单的使用 scp

scp [-pr] [-l 传输速度] file [用户名@][主机名]:目录名   ## 上传文件
scp [-pr] [-l 传输速度] [用户名@][主机名]:目录名   file ## 下载文件

    -p: 保存文件的权限信息
    -r: 递归复制

使用密钥验证

  1. 在客服端生成公钥,和私钥 ssh-keygen -t rsa

    hy511@HUXOS:~$ ssh-keygen -t rsa
    Generating public/private rsa key pair.
    Enter file in which to save the key (/home/hy511/.ssh/id_rsa): /home/hy511/.ssh/id_rsa_test #输入密钥存放位置
    Enter passphrase (empty for no passphrase):  #输入密钥使用密码
    Enter same passphrase again:                 #再次输入
    Your identification has been saved in /home/hy511/.ssh/id_rsa_test.
    Your public key has been saved in /home/hy511/.ssh/id_rsa_test.pub.
    The key fingerprint is:
    c5:27:4a:76:61:11:67:02:0d:69:94:08:98:d0:f8:ce hy511@HUXOS
    The key''s randomart image is:
    +--[ RSA 2048]----+
    |.+ o.. o+**oo    |
    |. +   . +o.=     |
    | .     .o = .    |
    |  .    o + o     |
    | o      S        |
    |  E              |
    |                 |
    |                 |
    |                 |
    +-----------------+
    
  2. 将公钥传入服务器

    scp ~/.ssh/id_rsa_test.pub root@romote:~

  3. 加入authorized_keys

    登陆服务器执行

    cat id_rsa_test.pub >> .ssh/authorized_keys
    

    确保.ssh 目录的权限为 0700 authorized_keys 权限为0644

rsync

  1. 在本机使用rsync几乎与cp 命令是一样的

  2. rsync通过ssh将远程目录同步到本地

    rsync [-avrlptgoD] [-e ssh] [user@host:/dir] [/local/path/]

    -v  查看模式显示更多的信息
    -q  安静模式与-v相反
    -r  递归复制
    -u  仅更新,若目标文件较新则不覆盖
    -l  复制连接文件的属性,而不是复制目标源文件的内容
    -p  复制是连同文件的属性一并复制
    -g  保留源文件的属组
    -o  保留源文件的属主
    -D  保留源文件的设备属性(Devices)
    -t  保留源文件的时间参数
    -I  忽略更新时间(mtime)
    -z  在文件传输时,压缩
    -e  使用的协议
    
    -a  相当于-rlptgoD
    
  3. 通过rsync提供的daemon 来传输,主机启动873端口

    客户端使用(两个“:”)rsync -av user@host::/dir/path ./local/path

ssh 端口转发

  1. 本地转发

    ssh -L [本地端口]:127.0.0.1:[远程端口] -N [用户名@][远程主机]
    
    这样访问本地127.0.0.1:[本地端口] 就相当与访问[远程主机]:[远程端口]
    
  2. 远程转发

    ssh -R [远程端口]:本地主机:[本地端口] -N [用户名@][远程主机]
    
    这样访问远程主机的:[远程端口] 就相当与访问[本地主机]:[本地端口]
    
    具体应用,本地主机在NAT路由之后,可以通过这样的方法使得外网ip能访问本地主机提供的服务
    
  3. 动态转发

    ssh -D [本地端口]  -N [用户名@][远程主机]
    
    相当于在本地端口启用SOCKS 代理
    

使用ssh传递图形界面窗口

需要服务器支持X11

    ssh -X user@host

    连接后在终端输入

    firefox &

    就可以启用服务器上面的firefox 并且在客户端显示firefox的窗口

无需进入终端直接打开firefox

    ssh -fXT user&host firefox

在windows可以使用xming 这个程序通过ssh的传递打开linux的窗体程序

不同的机器使用不同的ssh密钥

ssh 连接时将使用你.ssh/目录下面的id_rsa 进行认证。如果你使用其他的名称,比如像 id_rsa_github之类的,就需要使用ssh-add 加入到你的密钥列表里面 。具体操作为:

    ssh-agent bash
    ssh-add ~/.ssh/id_rsa.pub

而每启动一个ssh-agent 都需要执行相同的步骤。然而可以通过额外的方法使用同一个ssh-agent 为每一个bash命令行代理 。参照Arch Wiki

当然我们还可以使用~/.ssh/config 这个文件制定不同的地址使用不同的密钥进行认证,在这个文件里面还可以制定服务的端口,用户名,等一些信息。

    host v5
    HostName v5.huxos.me
    Port  2823
    User huxos
    IdentityFile ~/.ssh/id_rsa_myvhost

而这样指定之后 使用ssh v5就会以huxos 这个用户连接v5.huxos.me 这台主机的2823 端口,并且使用 id_rsa_myvhost 这个密钥文件进行认证,看上去就像使用了一个神奇的别名

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值