您的位置:首页 > 其它

SSH 详解

2015-09-13 14:19 337 查看
SSH(Secure Shell)是一个远程登录和远程执行命令工具。SSH协议目前有SSH1和SSH2两种,实现SSH协议的主要有OpenSSH和SSH Communication Security Corporation。OpenSSH包含了一下命令:

sshd:SSH服务端程序
sftp-server:SFTP服务端程序(类似FTP但提供数据加密的一种协议)
slogin:SSH的别名
ssh:SSH协议的客户端程序,用来登入远程系统或远程执行命令
ssh-add:SSH代理相关程序,用来向SSH代理添加key
ssh-agent:SSH代理程序,如果给private key加了密码,加入agent后可以在terminal session中首次输入密码即可。
ssh-keygen:SSH key 生成器
scp:非交互式sftp-server的客户端,用来向服务器上传/下载文件
sftp:交互式sftp-server客户端,用法和ftp命令一样
首次登录时,SSH会把主机指纹存入know_hosts文件中,如果该主机重装系统,ssh指纹改变,则需要删除对应的指纹。.ssh目录权限必须是700,并且用户的home目录不能给其他用户写权限。如果发生不能登录的问题,查看服务器上的日志/var/log/secure。在/etc/ssh/ssh_config是SSH客户端的配置文件,/etc/ssh/sshd_config是SSH服务端的配置文件。
服务器的authorized_keys文件中存放着授权客户端的public key。客户端向该文件添加public key有以下另种方法:
ssh-copy-id username@remote_host
cat .ssh/id_rsa.pub | ssh username@remote_host "cat >> .ssh/authorized_keys"

服务器添加授权public key:
echo public_key_string >> ~/.ssh/authorized_keys

在ssh命令后跟其他bash命令是执行远程服务器的命令,相当于登入服务器,执行命令,然后登出服务器。
ssh host 命令
重启多台服务器:
for i in $(seq 1 254) ; do  ssh 10.0.0.${i} reboot ; done

对/.ssh/config文件做配置,可以将不同host用不同key登录:

Host SERVERNAME1
IdentitiesOnly yes
IdentityFile ~/.ssh/id_rsa_SERVER1
# CheckHostIP yes
# Port 22
Host SERVERNAME2
IdentitiesOnly yes
IdentityFile ~/.ssh/id_rsa_SERVER2
# CheckHostIP no
# Port 2177
ControlMaster auto
ControlPath /tmp/%r@%h:%p别名登录参见
通用资料
详细资料

DSA key 使用
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: