◆案例1◆ SSH常用参数配置说明
配置文件说明
vim /etc/ssh/sshd_config port 22 #监听端口 addressFamily any #允许所有人链接 listenAddress 0.0.0.0 #IPV4监听IP 0.0.0.0表示监听所有 listenAddress : : #IPV6监听IP protocol 2 #使用二代协议 syslogFacility AUTHPRIV #日志认证等级 permitRootLogin yes #是否允许root登陆 passwordAuthentication yes #是否使用密码认证 permitEmptyPasswords no #是否允许空密码 loginGraceTime 2m #2分钟不输入后自动断开连接 printMotd yes #登陆后根据/etc/motd内容打印信息 printLastLog yes #输出最后一次登录信息 useDNS yes #反查主机名,关闭后可提升登陆速度 gSSAPIAuthentication yes #GSS认证,关闭后可提升登陆速度 pidFile /var/run/sshd.pid #存放sshPID的地方 usePrivilegeSeparation sandbox/yes/no #是否允许以较低权限运行 pubkeyAuthentication yes #使用公钥认证机制 authorizedKeysFile .ssh/auth #公钥的存放位置
SSH远程登陆
usage: ssh [-1246AaCfGgKkMNnqsTtVvXxYy] [-b bind_address] [-c cipher_spec] -q #静默模式 -i #指定身份文件 -o #指定配置选项 -X #开启X11转发功能 -x #关闭X11转发功能 -y #开启信任X11转发功能 -1 #强制使用ssh协议版本1 -2 #强制使用ssh协议版本2 -4 #强制使用IPv4地址 -6 #强制使用IPv6地址 -C #请求压缩所有数据 -f #后台执行ssh指令 -N #不执行远程指令 -F #指定ssh指令的配置文件 -A #开启认证代理连接转发功能 -a #关闭认证代理连接转发功能 -l #指定连接远程服务器登录用户名 -g #允许远程主机连接主机的转发端口 -p #指定远程服务器上的端口 -b #使用本机指定地址作为对应连接的源ip地址
SSH参考实例
#无选项参数运行SSH ssh 192.168.1.1 #指定登陆用户 ssh -l username 192.168.*.* ssh username@192.168.*.* #指定端口 ssh 192.168.1.1 -p 22 #绑定源地址 ssh -b 192.168.1.1 -l username 192.168.1.2 #使用其他配置文件 ssh -F /root/my_ssh_config 192.168.1.1
SCP跨机远程拷贝
usage: scp [-12346BCpqrv] [-c cipher] [-F ssh_config] [-i identity_file] -1 #强制scp命令使用协议ssh1 -2 #强制scp命令使用协议ssh2 -4 #强制scp命令只使用IPv4寻址 -6 #强制scp命令只使用IPv6寻址 -B #使用批处理模式(传输过程中不询问传输口令或短语) -C #允许压缩。(将-C标志传递给ssh,从而打开压缩功能) -p #留原文件的修改时间,访问时间和访问权限。 -q #不显示传输进度条。 -r #递归复制整个目录。 -v #详细方式显示输出。scp和ssh(1)会显示出整个过程的调试信息。这些信息用于调试连接,验证和配置问题。 -c #cipher 以cipher将数据传输进行加密,这个选项将直接传递给ssh。 -F #ssh_config 指定一个替代的ssh配置文件,此参数直接传递给ssh。 -i #identity_file 从指定文件中读取传输时使用的密钥文件,此参数直接传递给ssh。 -l #limit 限定用户所能使用的带宽,以Kbit/s为单位。 -o #ssh_option 如果习惯于使用ssh_config(5)中的参数传递方式, -P #port 注意是大写的P, port是指定数据传输用到的端口号 -S #program 指定加密传输时所使用的程序。此程序必须能够理解ssh(1)的选项。
SCP参考实例
#本地复制远程文件:(把远程的文件复制到本地) scp [email protected]:/val/test/test.tar.gz /val/test/test.tar.gz #远程复制本地文件:(把本地的文件复制到远程主机上) scp /val/test.tar.gz [email protected]:/val/test.tar.gz #本地复制远程目录:(把远程的目录复制到本地) scp -r [email protected]:/val/test/ /val/test/ #远程复制本地目录:(把本地的目录复制到远程主机上) scp -r ./ubuntu_env/ [email protected]:/home/pipi #本地复制远程文件到指定目录:(把远程的文件复制到本地) scp [email protected]:/val/test/test.tar.gz /val/test/ #远程复制本地文件到指定目录:(把本地的文件复制到远程主机上) scp /val/test.tar.gz [email protected]:/val/
◆案例1◆:使用传统方式实现ssh认证
1.在客户端上生成密钥对,默认会存放在/root/.ssh/目录中
sshkeygen #其中id_rsa.pub为公钥 id_rsa为私钥
2.将公钥文件复制到服务端的/root/家目录下,并改名为authorized_keys.
◆案例2◆:使用命令一键认证
1.在客户端上生成密钥对,默认会存放在/root/.ssh/目录中
sshkeygen #其中id_rsa.pub为公钥 id_rsa为私私钥
2.拷贝公钥到目标IP
ssh-copy-id -i /root/.ssh/id_rsa.pub [email protected]
拓展:两台linux服务器之间复制数据
Scp /etc/passwd [email protected]:/tmp #将/etc/passwd 复制到远程的/tmp下
Scp [email protected]:/etc/passwd /opt #将远程/etc/passwd 拷贝到本地/opt下
#拷贝目录:加入 –r即可拷贝目录