SSH证书登陆
客户端建立私钥和公钥
客户端运行
ssh-keygen -t rsa
ssh服务端配置
vim /etc/ssh/sshd_config
配置文件修改
禁用root账户登录,非必要,但为了安全性,请配置
PermitRootLogin no
是否让sshd
去检查用户家目录或相关档案的权限数据,
这是为了担心使用者将某些重要档案的权限设错,可能会导致一些问题所致。
例如使用者的~/.ssh/
权限设错时,某些特殊情况下会不许用户登入
StrictModes no
是否允许用户自行使用成对的密钥系统进行登入行为,仅针对 version 2。
至于自制的公钥数据就放置于用户家目录下的.ssh/authorized_keys
内
RSAAuthentication yes PubkeyAuthentication yes AuthorizedKeysFile %h/.ssh/authorized_keys
有了证书登录了,就禁用密码登录吧,安全要紧
PasswordAuthentication no
添加公钥
客户端
scp ~/.ssh/id_rsa.pub user_name@<ssh_server_ip>:~
服务端
cat id_rsa.pub >> ~/.ssh/authorized_keys
如果有修改配置/etc/ssh/sshd_config
,需要重启ssh服务器
/etc/init.d/ssh restart
客户端通过私钥登录ssh服务器
ssh命令
ssh -i /user_name/.ssh/id_rsa user_name@<ssh_server_ip>
scp命令
scp -i /user_name/.ssh/id_rsa filename user_name@<ssh_server_ip>:~
每次敲命令,都要指定私钥,是一个很繁琐的事情,所以我们可以把私钥的路径加入ssh客户端的默认配置里
修改/etc/ssh/ssh_config
其实默认id_rsa就已经加入私钥的路径了,这里只是示例而已
IdentityFile ~/.ssh/id_rsa
如果有其他的私钥,还要再加入其他私钥的路径
IdentityFile ~/.ssh/user_name_rsa
SSH别名
在配置文件~/.ssh/config
中添加
Host alias_name HostName 123.234.11.11 User user_name
默认该文件时不存在的,可以新建一个
默认配置文件参数
Host 别名 HostName 主机名 Port 端口 User 用户名 IdentityFile 密钥文件的路径
修改超时时间
修改/etc/ssh/sshd_config
配置文件
ClientAliveInterval 60 ClientAliveCountMax 3
参考资料
http://www.cnblogs.com/ggjucheng/archive/2012/08/19/2646346.html
利用 ssh 的用户配置文件 config 管理 ssh 会话
购买 Linux VPS 服务器后简单的安全设置
SCP服务器间传输文件
scp user_name@source_ip:file user_name@target_ip:file_or_dir
参考资料
http://www.cnblogs.com/hitwtx/archive/2011/11/16/2251254.html