ssh 完整

来源:互联网 发布:app编程入门 编辑:程序博客网 时间:2024/04/29 00:07

ssh简单使用

ssh -f [-o 参数项目] [-p 主机端口] [账号]@[主机] [执行的命令]使用-f 参数执行命令时无需等待命令执行完毕才退出ssh登陆,比如要重启远程主机的正确方法是ssh -f root@192.168.1.1 root

sftp

sftp [用户名]@[远程主机]进入之后与一般的ftp 没有差别了,可以使用sftp 完全替代的ftp

scp

如果知道服务器上面的目录结构,可以简单的使用 scpscp [-pr] [-l 传输速度] file [用户名@][主机名]:目录名   ## 上传文件scp [-pr] [-l 传输速度] [用户名@][主机名]:目录名   file ## 下载文件    -p: 保存文件的权限信息    -r: 递归复制

使用密钥验证

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

    hy511@HUXOS:~$ ssh-keygen -t rsaGenerating 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@HUXOSThe 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 这个密钥文件进行认证,看上去就像使用了一个神奇的别名

0 0
原创粉丝点击