最近在学习用openssh找了不少资料,小有总结,以供你们借鉴
php
安装和设置 OpenSSH Server安全
Ubuntu下安装 OpenSSH Server 是无比轻松的一件事情,须要的命令只有一条:服务器
sudo apt-get install openssh-serverssh
随后,Ubuntu 会自动下载并安装 openssh server,并一并解决全部的依赖关系。当您完成这一操做后,您能够找另外一台计算机,而后使用一个 SSH 客户端软件(强烈推荐 PuTTy),输入您服务器的 IP 地址。若是一切正常的话,等一下子就能够链接上了。而且使用现有的用户名和密码应该就能够登陆了。ide
事实上若是没什么特别需求,到这里 OpenSSH Server 就算安装好了。可是进一步设置一下,可让 OpenSSH 登陆时间更短,而且更加安全。这一切都是经过修改 openssh 的配置文件 sshd_config 实现的。学习
首先,您刚才实验远程登陆的时候可能会发现,在输入完用户名后须要等很长一段时间才会提示输入密码。其实这是因为 sshd 须要反查客户端的 dns 信息致使的。咱们能够经过禁用这个特性来大幅提升登陆的速度。首先,打开 sshd_config 文件:加密
sudo nano /etc/ssh/sshd_configspa
找到 GSSAPI options 这一节,将下面两行注释掉:rest
#GSSAPIAuthentication yes #GSSAPIDelegateCredentials noorm
而后从新启动 ssh 服务便可:
sudo /etc/init.d/ssh restart
再登陆试试,应该很是快了吧 
利用 PuTTy 经过证书认证登陆服务器
SSH 服务中,全部的内容都是加密传输的,安全性基本有保证。可是若是能使用证书认证的话,安全性将会更上一层楼,并且通过必定的设置,还能实现证书认证自动登陆的效果。
首先修改 sshd_config 文件,开启证书认证选项:
RSAAuthentication yes PubkeyAuthentication yes AuthorizedKeysFile %h/.ssh/authorized_keys
修改完成后从新启动 ssh 服务。
下一步咱们须要为 SSH 用户创建私钥和公钥。首先要登陆到须要创建密钥的帐户下,这里注意退出 root 用户,须要的话用 su 命令切换到其它用户下。而后运行:
用这个创建密钥,
http://www.zzbaike.com/wiki/index.php?title=PuTTY/PuttyGen%E4%BB%8B%E7%BB%8D&diff=prev&oldid=70114:
使用openssh
Protocol 2 #只支持SSH2协议
Port <端口号> #修改默认端口号
MaxStartups 5 #同时容许5个还没有登陆的SSH联机
MaxAuthTries 3 #最大登陆尝试次数为3
ServerKeyBits 1024 #将ServerKey强度改成1024比特
PermitEmptyPasswords no #禁止空密码进行登陆
ChallengeResponseAuthentication no #禁用s/key密码
UsePAM no #不经过PAM验证
PermitRootLogin no #禁止root远程登陆
PasswordAuthentication no #不容许密码方式的登陆
RSAAuthentication no #不容许RSA认证,只针对SSH1
PubkeyAuthentication yes #容许公钥认证
AuthorizedKeysFile .ssh/authorized_keys #保存公钥的认证文件
UsePrivilegeSeparation yes #用户权限设置
SyslogFacility AUTH #记录SSH登陆状况
LogLevel INFO #记录等级为INFO
PrintMotd yes #登陆成功后显示/etc/motd 文件的内容
PrintLastLog no #不显示上次登陆信息
Compression yes #是否压缩命令
KeepAlive yes #防止死链接
StrictModes yes #接受链接请求前对用户主目录和相关的配置文件进行宿主和权限检查
UseDNS no #不使用DNS反解
AllowUsers <用户名> #容许经过远程访问的用户,多个用户以空格分隔
AllowGroups <组名> #容许经过远程访问的组,多个组以空格分隔
DenyUsers <用户名> #禁止经过远程访问的用户,多个用户以空格分隔
DenyGroups <组名> #禁止经过远程访问的组,多个组以空格分隔
2、若是须要限制来路IP的话,能够修改/etc/hosts.deny和/etc/hosts.allow两个文件,经过添加sshd:<IP地址或IP段>来限制或容许SSH远程连接IP。
2、基于密钥认证的客户端链接
经过命令ssh -i ~/.ssh/<PrivateKeyFileName> <username>@<remote IP>登陆远程机。
ssh客户端在登录服务端时,会把对应的公钥写入~/.ssh/known_hosts文件。若是密钥发生改变,则将~/.ssh/known_hosts文件中对应的一行公钥删除,才能用新的私钥登陆。
PUTTY:将私钥文件id_rsa拷贝到客户端,经过PUTTYGEN转换RSA密钥,保存私钥为ppk格式,最后经过密钥认证便可登陆远程系统。
SecureCRT:将私钥文件id_rsa拷贝到客户端,在链接选项里把authentication的验证顺序中的PublicKey放到最早的位置,打开PublicKey验证的properties页,identity file选择id_rsa。
3、scp的使用
scp <源主机用户名>@<源主机名>:<源文件或目录路径,多个文件以空格分隔> <目标主机用户名>@<目标主机名>:<目标文件或目录路径>
若是源为本机的话,则只须要列出文件或目录路径便可。
经常使用参数 :
-v 显示进度
-C 压缩传输选项
-P 指定端口
-4 强行使用 IPV4 地址
-6 强行使用 IPV6 地址
-i 指定私钥文件路径
-r 遍历路径复制
-l 限制最大传输带宽,单位是Kb/s
都是别人的本身感受有用裁剪组合了