SSH & SCP
创建日期:2015-04-27 18:09

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