SSH命令常用选项
ssh即secure shell,是一种加密的网络协议。使用该协议的数据将被加密,如果在传输中间数据泄漏,也可以确保没有人能读取出有用信息。要使用SSH,目标机器应该安装SSH服务端应用程序,因为SSH是基于客户-服务模式的。
choi@lanseyujie:~$ ssh usage: ssh [-1246AaCfGgKkMNnqsTtVvXxYy] [-b bind_address] [-c cipher_spec] [-D [bind_address:]port] [-E log_file] [-e escape_char] [-F configfile] [-I pkcs11] [-i identity_file] [-J [user@]host[:port]] [-L address] [-l login_name] [-m mac_spec] [-O ctl_cmd] [-o option] [-p port] [-Q query_option] [-R address] [-S ctl_path] [-W host:port] [-w local_tun[:remote_tun]] [user@]hostname [command]
1.指定登录用户
默认的ssh会尝试用当前用户名作为用户名来连接,若目标主机上没有和当前用户名相同的用户就需要指定目标主机上存在的用户名。
#使用和当前用户名登录主机192.168.1.100 ssh 192.168.1.100 #使用root用户登录主机192.168.1.100 ssh root@192.168.1.100
2.指定登录端口
ssh默认使用的端口号是22,出于安全等因素某些系统会修改默认端口号,在连接时我们需要指定端口号。
#修改后ssh的端口为12012 ssh -p 12012 root@192.168.1.100
3.绑定源地址
如果你的客户端有多于两个以上的IP地址,你就不可能分得清楚在使用哪一个IP连接到SSH远程主机。我们可以绑定源地址,登录远程主机后在使用netstat | grep ssh查看连接情况。
#本地IP 192.168.0.1 ssh -b 192.168.0.1 -l user host
4.通过SSH连接屏幕
直接连接到远程屏幕会话,节省了无用的父bash进程。
ssh -t user@host screen –r
5.比较远程和本地文件
ssh user@host cat /path/to/remotefile | diff /path/to/localfile –
6.SSH隧道端口转发
执行后可以直接在本地浏览器中输入http://localhost:8888访问这个网站
#-N 告诉SSH客户端这个连接不需要执行任何命令。 #-L 做本地映射端口,被冒号分割的三个部分含义分别是需要使用的本地端口号、需要访问的目标机器IP地址、需要访问的目标机器端口,最后一个是用来建立隧道的中间机器 ssh -N -L 8888:localhost:80 user@host
7.通过中间主机建立SSH连接
unreachable_host表示从本地网络无法直接访问的主机,但可以从reachable_host所在网络访问,这个命令通过到reachable_host的“隐藏”连接,创建起到unreachable_host的连接
ssh -t reachable_host ssh unreachable_host
8.将你的麦克风输出到远程计算机的扬声器
#这样来自你麦克风端口的声音将在SSH目标计算机的扬声器端口输出,但遗憾的是目标计算机会听到很多嘶嘶声 dd if=/dev/dsp | ssh -c arcfour -C user@host dd of=/dev/dsp
9.ssh-keygen
usage: ssh-keygen [-q] [-b bits] [-t dsa | ecdsa | ed25519 | rsa | rsa1] [-N new_passphrase] [-C comment] [-f output_keyfile] ssh-keygen -p [-P old_passphrase] [-N new_passphrase] [-f keyfile] ssh-keygen -i [-m key_format] [-f input_keyfile] ssh-keygen -e [-m key_format] [-f input_keyfile] ssh-keygen -y [-f input_keyfile] ssh-keygen -c [-P passphrase] [-C comment] [-f keyfile] ssh-keygen -l [-v] [-E fingerprint_hash] [-f input_keyfile] ssh-keygen -B [-f input_keyfile] ssh-keygen -D pkcs11 ssh-keygen -F hostname [-f known_hosts_file] [-l] ssh-keygen -H [-f known_hosts_file] ssh-keygen -R hostname [-f known_hosts_file] ssh-keygen -r hostname [-f input_keyfile] [-g] ssh-keygen -G output_file [-v] [-b bits] [-M memory] [-S start_point] ssh-keygen -T output_file -f input_file [-v] [-a rounds] [-J num_lines] [-j start_line] [-K checkpt] [-W generator] ssh-keygen -s ca_key -I certificate_identity [-h] [-n principals] [-O option] [-V validity_interval] [-z serial_number] file ... ssh-keygen -L [-f input_keyfile] ssh-keygen -A ssh-keygen -k -f krl_file [-u] [-s ca_public] [-z version_number] file ... ssh-keygen -Q -f krl_file file ...
(1)单向登录(ssh登录远程主机无需密码)
#生成私钥文件id_rsa和公钥文件id_rsa.pub #-t 加密方式 -f 自定义文件名 -C 备注 ssh-keygen -t rsa #把id_rsa.pub发送到远程的.ssh目录下并改名成authorized_keys ssh-copy-id -i ~/.ssh/id_rsa.pub user@host
(2)双向登录(ssh、scp无需密码)
按(1)单向登录方法在本地主机和主机互相添加authorized_keys即可。
SFTP命令常用选项
sftp即secure ftp,是一个交互式文件传输程式。它类似于ftp,但它进行加密传输,比FTP有更高的安全性。
choi@lanseyujie:~$ sftp usage: sftp [-1246aCfpqrv] [-B buffer_size] [-b batchfile] [-c cipher] [-D sftp_server_path] [-F ssh_config] [-i identity_file] [-l limit] [-o ssh_option] [-P port] [-R num_requests] [-S program] [-s subsystem | sftp_server] host sftp [user@]host[:file ...] sftp [user@]host[:dir[/]] sftp -b batchfile [user@]host
1.文件上传
#格式:put [-Ppr] local [remote] #例如把当前本地用户目录文件test.c上传到远程主机/tmp/目录 put ~/test.c /tmp/ #例如把当前本地用户目录文件test/上传到远程主机/tmp/目录 put -r ~/test/ /tmp/
2.文件下载
#格式:get [-Ppr] remote [local] #例如从远程主机下载文件/tmp/test.c到当前本地用户目录 get /tmp/test.c ~/ #例如从远程主机下载文件夹/tmp/test/到当前本地用户目录 get -r /tmp/test/ ~/
3.其它命令
sftp远程主机后输入ls、cd、pwd等命令是在远程主机执行,要在本地主机执行要在命令前加l(localhost的意思),对应的应为lls、lcd、lpwd。其它命令可以使用help查看用法。
SCP命令常用选项
scp就是secure copy,一个在linux下用来进行远程拷贝文件的命令。scp就是secure copy,是用来进行远程文件拷贝的。数据传输使用 ssh,并且和ssh使用相同的认证方式,提供相同的安全保证 。
choi@lanseyujie:~$ scp usage: scp [-12346BCpqrv] [-c cipher] [-F ssh_config] [-i identity_file] [-l limit] [-o ssh_option] [-P port] [-S program] [[user@]host1:]file1 ... [[user@]host2:]file2
1.文件上传
#格式:scp [-Pr] local [remote] #例如把当前本地用户目录文件test.c上传到远程主机/tmp/目录 scp ~/test.c user@host:/tmp/ #例如把当前本地用户目录文件test/上传到远程主机/tmp/目录 scp -r ~/test/ user@host:/tmp/
2.文件下载
#格式:scp [-Pr] remote [local] #例如从远程主机下载文件/tmp/test.c到当前本地用户目录 scp user@host:/tmp/test.c ~/ #例如从远程主机下载文件夹/tmp/test/到当前本地用户目录 scp -r user@host:/tmp/test/ ~/
RCP命令常用选项
rcp即remote file copy,RCP通信未加密,不推荐使用,用法同SCP命令。
choi@lanseyujie:~$ rcp usage: scp [-12346BCpqrv] [-c cipher] [-F ssh_config] [-i identity_file] [-l limit] [-o ssh_option] [-P port] [-S program] [[user@]host1:]file1 ... [[user@]host2:]file2