一、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