一、telnet 明文链接,不安全。 链接方式:telnet 加IP加端口号(可判断对方的某个端口是否开启)
二、ssh 加密链接,安全 。链接方式:ssh加IP 对方22端口必须是开启状态
可指定登陆的用户,不指定默认登陆root用户
以上必须安装scp命令,支持远程链接才行,而且以上两种不能彼此链接。linux
一、命令说明:vim
scp 远程复制 参数-P(大写):接端口,默认22 -r:递归,表示拷贝目录 -p:表示在拷贝先后保持文件或目录属性 -l limit:限制速度
二、实例:
例1:把本地的/etc/hosts远程复制给对方安全
scp /etc/hosts root@192.168.200.150:/etc
例二、从对方取文件:bash
scp root@192.168.200.150:/etc/hosts /etc
注:若是远程登陆时候很慢,改个配置文件便可方法以下:服务器
一、vim /etc/ssh/sshd_config 里面第81行GSSAPIAuthentication yes改为no(表示不须要验证)122行#UseDNS yes改为UseDNS no (反向解析) 二、重启sshd服务 三、把改好的配置文件复制给对方服务器 四、重启对方的sshd服务
密钥对:是一个含有私钥的文件和一个含有公钥的文件,两只关系为用私钥登陆公钥,实现免密码登陆,私钥能够一对多个公钥。私钥会放在家目录下的隐藏.ssh目录里,私钥权限为600,公钥644网络
一、命令: 建立密钥对:ssh-keygen 参数:-t:指定加密类型(rsa,dsa)。-f:指定密钥对文件的名字 。 -P(大写):指定密码 命令说明: 1)建立密钥对时,要你输入的密码,为进行密钥对验证时输入的密码(和linux角色登陆的密码彻底没有关系); 2)若是咱们要进行的是SSH免密码链接,那么这里密码为空跳过便可。 3)若是在这里你输入了密码,那么进行SSH密钥对匹配链接的时候,就须要输入这个密码了。(此密码为独立密码) 4)用户家目录下的.ssh隐藏目录下会生成:id_rsa id_rsa.pub 两个文件。id_rsa是用户的私钥;id_rsa.pub则是公钥
例1:生成密钥对,传给对方服务器ssh
一、建立密钥对 ssh-keygen 二、将公钥id_rsa.pub文件复制到另一台服务器的用户家目录下的.ssh目录下 ,若是没有须要建立一个。而且权限改为700 三、将拷贝过去的id_rsa.pub文件里的内容追加到~/.ssh/authorized_keys文件里 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
例2:登陆普通用户远程免密码ide
一、将公钥id_rsa.pub文件复制到另一台服务器的普通用户家目录下 scp ~/.ssh/id_rsa.pub yunjisuan@192.168.200.150:~ 二、将公钥内容写入cat ~/.ssh/id_rsa.pub >> ~/authorized_keys 三、在去另一台服务器家目录下建立.ssh目录并修改权限为700,把属主改成普通用户 四、authorized_keys移动到.ssh目录下,改属主为普通用户
例3:非交互式一条命令建立密钥对工具
命令说明:ssh-copy-id 分发公密钥对命令 参数:-i 指定要分发的内容 一、一条命令生成密钥对 ssh-keygen -t dsa -f ~/.ssh/id_dsa -P "" 二、经过ssh-copy-id进行公钥的自动分发: ssh-copy-id -i ~/.ssh/id_dsa.pub yunjisuan@192.168.200.150 把公钥分发给普通用户yunjisuan
例4:免密码登陆对方服务器ui
一、须要安装sshpass工具,须要云yum仓库安装。参数 -p 指定密码 -f:给出密码文件路径 二、sshpass -p “密码”ssh-copy-id -i ~/.ssh/id_dsa.pub yunjisuan@192.168.200.150 表示给普通用户yunjisuan设定免密码链接
说明:
.ssh下的known_hosts文件是记录已经链接过的IP用的。 远程登陆时无需提示直接记录方法 --免交互分发公钥 sshpass -p “密码” ssh-copy-id -i ~/.ssh/id_dsa.pub "-o StrictHostKeyChecking=no 对方IP" 命令说明:-o StrictHostKeyChecking=no:不记录对方主机信息
5、实战自动批量分发密钥对脚本
#!/bin/bash function Yum(){ umount /dev/sr0 &>/dev/null [ -d /media/cdrom ] || mkdir -p /media/cdrom [ $? -eq 0 ] && echo "建立目录成功" || exit mount /dev/sr0 /media/cdrom &>/dev/null if [ $? -eq 0 ];then echo "挂载成功" else exit fi [ -d /etc/yum.repos.d ] || mkdir -p /etc/yum.repos.d cd /etc/yum.repos.d mv * /tmp cat > moban.repo << ok [moban.repo] name=moban baseurl=file:///media/cdrom/ gpgcheck=0 enabled=1 ok if [ $? -eq 0 ];then echo "配置文件成功" else exit fi yum -y clean all &>/dev/null yum makecache &>/dev/null if [ $? -eq 0 ];then echo "搭建成功" else echo "搭建失败请重新检查" exit fi } function Yun(){ ping -c 1 www.baidu.com &>/dev/null if [ $? -eq 0 ];then echo "准备下载配置文件" else echo "不能链接外网,请检查网络" exit fi wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo yum -y clean all yum makecache if [ $? -eq 0 ];then echo "云yum搭建完毕" else echo "搭建失败,请重新检查" exit fi } which scp &>/dev/null if [ $? -eq 0 ];then echo "远程插件已安装" else Yum yum -y install openssh-client echo "远程插件安装完毕" fi which sshpass &>/dev/null if [ $? -eq 0 ];then echo "sshpass工具已安装" else Yun yum -y install sshpass echo "sshpass工具安装完毕" fi [ -d ~/.ssh ] && rm -rf ~/.ssh/* || mkdir .ssh chmod 700 ~/.ssh ssh-keygen -t dsa -f ~/.ssh/id_dsa -P "" &>/dev/null i=1 for ip in 192.168.200.{100..149} do ping -c 1 -i 0.1 $ip &>/dev/null if [ $? -eq 0 ];then sshpass -p "123456" ssh-copy-id -i ~/.ssh/id_dsa.pub "-o StrictHostKeyChecking=no root@"$ip"" &>/dev/null echo "$ip分发成功" else echo "$ip网络不通,请检查网络" fi let i++ done