在Windows中,常用SecureCrt工具管理常用的ssh链接,为了在OSX或Linux中方便地使用ssh,可以用以下方式进行管理
基本设置
在Client这端,使用
ssh-keygen -t rsa
创建相应的密钥对
比如
ssh-keygen -t rsa
vmcentos7
# 提示输入密钥时,选择空,即直接回车确认
配置服务端
将生成的 vmcentos7.pub 的内容复制到 Server 端 ~/.ssh/authorized_keys 文件中(如果没有,就创建一个)
并确认
~/.ssh 目录的访问权限为700
~/.ssh/authorized_keys 文件的访问权限为 600
然后在Client这端的 .ssh 目录的 config 文件中,添加以下内容
Host vmcentos7
HostName 10.211.55.13
User root
Port 22
IdentityFile ~/.ssh/vmcentos7
使用方法
然后在Client端就可以通过
ssh vmcentos7
TIPS: 这里的 vmcentos7 不需要去 /etc/hosts 中进行域名绑定
增强使用
直接连接到 Server 端了
附上一个读取 config 配置,然后通过菜单选择连接ssh的小脚本
#!/usr/bin/python
#-*- coding:utf-8 -*-
import sys,os
import re
# 默认的ssh服务器配置
cfg = "/Users/robert/.ssh/config"
# 读取并加载配置
def loadConfig ( cfg ):
f = open(cfg)
lastinx = 0
inx = 1
list = []
for line in f:
if lastinx != inx :
item = {'inx':0,'name':'','host':''}
lastinx = inx
item['inx'] = inx
match1 = re.search('^Host\s(.+)\n$', line)
if match1:
item['name'] = match1.group(1)
match2 = re.search('^\s*HostName\s(.+)\n$', line)
if match2:
item['host'] = match2.group(1)
list.append(item)
inx = inx + 1
f.close()
return list
# 显示菜单
def showRemotes( list ):
os.system('clear')
print u'==== Total %d Remotes ===\n'%len(list)
inx = 1
for i in list:
print u'%(inx)d - %(name)s(%(host)s)'%i
print u'%(inx)d - %(name)s(%(host)s)'%{'inx':0,'name':'Exit','host':'Exit Menu'}
print u'\n'
choice = raw_input('选择要链接的服务器: ')
return choice
def main():
list = loadConfig( cfg )
total = len(list)
while True:
idx = showRemotes(list)
if idx.isdigit():
idx = int(idx)
if idx == 0:
print u'退出程序'
sys.exit(0)
elif idx < = total :
item = list[idx-1]
connectRemote (item)
def connectRemote ( item ):
cmdstr = u'ssh %(name)s'%item
print item
print cmdstr
os.system(cmdstr)
if __name__ == "__main__":
main()