目录
SSH server
Software:openssh-server
Services:
- ssh(Security Shell)
- sftp-server(Security File Transfer Protocol)
Configure directory:/etc/ssh
ssh Service
ssh(加密远程传输协议):
- Server Port:22
- Client Port:> 1024
配置文件:
- Server:/etc/ssh/sshd_config
- Client:/etc/ssh/ssh_config
连接方式:
- 密码验证。
- 密钥验证。
ssh Commands:
ssh userName@[hostname|IP] # Remote connect
ssh -X userName@[hostname|IP] # Support GUI
ssh userName@[hostname|IP] [commands] # [commands]: Execute following commands.
-
-X 选项:需要在 Server 的 /etc/ssh/ssh_config 文件中设置 ForwardX11 yes 或者 X11Forwad yes,以此启用 X11 Forwarding。
-
scp commands:
scp -r [file|dir] userName@hostname:dirUrl # Copy local [file|directory] into remote host
scp -r userName@hostname:dirUrl [file|dir] # Copy remote [file|firectory] into local host
- sftp commands:
sftp userName@[hostname|IP] # Entry security ftp via protocol of ssh
连接 sftp 后可以使用下面指令进行上传和下载文件:
get file # dowmload the file
put file # upload the file
ssh-agent
ssh-agent 是一个密钥管理器,用来管理 SSH Server 上的一个活多个密钥,并为其他需要使用密钥的程序提供代理。
ssh 是一个用来保证安全的网络协议,那么自然会有上层 APP 希望通过它来完成远程连接的安全认证工作,e.g. git 客户端。ssh-agent 就是为了这些 APPs 能够方便使用 ssh 的一个工具。
当把私钥交给 ssh-agent 管理的好处:
- 当 APPs 需要身份验证时,可以将验证申请提交给 ssh-agent 来完成整个认证过程。
- 当 SSH Server 有多个密钥,使用不同的密钥连接到不同的主机时,通常需要要手动指定对应的密钥,而 ssh-agent 可以自动帮助我们选择对应的密钥进行认证。
- 避免重复输入密码,如果私钥使用了密码加密,那么每一次使用 SSH 密钥对进行登录的时候,都必须输入正确的密码。而 ssh-agent 能够将已解密的私钥缓存起来,在需要的时候直接提供给 SSH Client。这样,就只需要在使用 ssh-add 时将私钥加入 ssh-agent 缓存的时候,输入一次密码即可。
ssh-agent 的工作原理:
SSH 在生产环境中的使用
- 不允许远程连接到 Root:
$ vi /etc/ssh/sshd_config
...
PermitRootLogin no
- 拒绝密码登陆:
$ vi /etc/ssh/sshd_config
...
PasswordAuthentication no
rsync
基于 SSH 协议的 rsync 指令:
rsync -option fileName userName@[hostname|ip]:/directory
# e.g.
rsync -a /etc/ 192.168.0.2:/tmp
选项:
- -a 归档
- -v 显示过程
- -r 子目录
- -l 同步链接文件
- -p 保留权限
- -t 保留时间戳
- -g 保留属组
- -o 保留属主