SSH免密登入

1、服务器配置

命令 ssh-keygen

-m  key_format  指定秘钥格式

#!/bin/bash
ssh-keygen -m PEM -t rsa
cd .ssh
cat id_rsa.pub > authorized_keys
cd ..
chmod 700 .ssh
cd .ssh
chmod 600 authorized_keys

2、利用xshell生成本地共私钥文件

 

 这里可以输入自定义登入密码或者不输入

 

 

 可以将公钥保存为pub文件以备后续使用

 

将私钥文件导出,以便后续调用

3、Xshell配置校本化生成

将一下内容保存为template.xsh

[CONNECTION:PROXY]
Proxy=
StartUp=0
[CONNECTION:SERIAL]
BaudRate=6
StopBits=0
FlowCtrl=0
Parity=0
DataBits=3
ComPort=0
[SessionInfo]
Version=5.2
Description=Xshell session file
[TRACE]
SockConn=1
SshLogin=0
SshTunneling=0
TelnetOptNego=0
[CONNECTION:SSH]
LaunchAuthAgent=1
KeyExchange=
ForwardToXmanager=1
Compression=0
KeyExchangeList=ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha1,diffie-hellman-group1-sha1
NoTerminal=0
CipherList=aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,arcfour,aes192-cbc,aes128-gcm@openssh.com,aes256-gcm@openssh.com,aes256-cbc,rijndael128-cbc,rijndael192-cbc,rijndael256-cbc,aes256-ctr,aes192-ctr,aes128-ctr,rijndael-cbc@lysator.liu.se,arcfour128,arcfour256
UseAuthAgent=0
MAC=
InitRemoteDirectory=
ForwardX11=0
VexMode=0
Cipher=
Display=localhost:0.0
FwdReqCount=0
InitLocalDirectory=
MACList=hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com,hmac-sha1-etm@openssh.com,hmac-sha2-256,hmac-sha2-512,hmac-sha1,hmac-sha1-96,hmac-md5,hmac-md5-96,hmac-ripemd160,hmac-ripemd160@openssh.com,hmac-sha1-96-etm@openssh.com,hmac-md5-etm@openssh.com,hmac-md5-96-etm@openssh.com
[USERINTERFACE]
NoQuickButton=0
QuickCommand=
[CONNECTION:FTP]
Passive=1
InitRemoteDirectory=
InitLocalDirectory=
[TRANSFER]
FolderMethod=0
DropXferHandler=2
XmodemUploadCmd=rx
ZmodemUploadCmd=rz -E
FolderPath=
YmodemUploadCmd=rb -E
AutoZmodem=1
SendFolderPath=
DuplMethod=0
XYMODEM_1K=0
[CONNECTION]
PasteDelay=0
Port=22
Host=10.4.37.117
Protocol=SSH
AutoReconnect=0
AutoReconnectLimit=0
Description=
AutoReconnectInterval=30
FtpPort=21
UseNaglesAlgorithm=0
IPV=0
[TERMINAL]
Rows=24
CtrlAltIsAltGr=1
InitOriginMode=0
InitReverseMode=0
DisableBlinkingText=0
CodePage=65001
InitAutoWrapMode=1
Cols=80
InitEchoMode=0
Type=xterm
DisableAlternateScreen=0
CJKAmbiAsWide=0
ScrollBottomOnKeyPress=0
DisableTitleChange=0
ForceEraseOnDEL=0
InitInsertMode=0
ShiftForcesLocalUseOfMouse=1
FontLineCharacter=1
ScrollbackSize=1024
InitCursorMode=0
BackspaceSends=2
UseInitSize=0
UseLAltAsMeta=0
UseRAltAsMeta=0
AltKeyMapPath=
DeleteSends=0
DisableTermPrinting=0
IgnoreResizeRequest=1
ScrollBottomOnTermOutput=1
FontPowerLine=1
ScrollErasedText=1
KeyMap=0
RecvLLAsCRLF=0
EraseWithBackgroundColor=1
InitNewlineMode=0
InitKeypadMode=0
TerminalNameForEcho=Xshell
[TERMINAL:WINDOW]
ColorScheme=XTerm
LineSpace=0
CursorColor=65280
CursorBlinkInterval=600
TabColorType=0
CursorAppearance=0
TabColorOther=0
FontSize=10
CursorBlink=0
BoldMethod=2
CursorTextColor=0
FontFace=Courier New
CharSpace=0
MarginBottom=5
MarginLeft=5
MarginTop=5
MarginRight=5
[CONNECTION:TELNET]
XdispLoc=1
NegoMode=0
Display=$PCADDR:0.0
[CONNECTION:AUTHENTICATION]
Library=0
Passphrase=
Delegation=0
UseInitScript=0
TelnetLoginPrompt=ogin:
Password=
RloginPasswordPrompt=assword:
UseExpectSend=0
TelnetPasswordPrompt=assword:
ExpectSend_Count=0
Method=1
ScriptPath=
UserKey=id_rsa_2048
UserName=root
[LOGGING]
FilePath=%n_%Y-%m-%d_%t.log
Overwrite=1
TermCode=0
AutoStart=0
Timestamp=0
Prompt=0
[CONNECTION:RLOGIN]
TermSpeed=38400
[CONNECTION:KEEPALIVE]
SendKeepAliveInterval=60
KeepAliveInterval=60
TCPKeepAlive=0
KeepAliveString=
SendKeepAlive=0
KeepAlive=1

 新建python文件,拷贝以下代码,运行createXsh(...)生成想要的xsh文件,将生成的.xsh文件放到Xshell的sessions指定目录下面即可打开

def createXsh(sName, sProtocol, sHost, sPort, sUserName, sMethod, sPassword, sUserKey):
    """
    根据参数生成单个Xsh文件
    :param sName: 文件名
    :param sProtocol: 协议类型 TELNET、SSH
    :param sHost: IP地址
    :param sPort: 端口 22、23
    :param sUserName: 用户
    :param sPassword: 密码  Method=0
    :param sUserKey: 密钥文件名 Method=1
    :return:
    """
    tpfile = os.path.join(os.getcwd(), "template.xsh")
    tarfile = os.path.join(os.getcwd(), sName + ".xsh")
    lines = []
    with open(tpfile, 'r', encoding='utf-8') as tpf:
        for l in tpf.readlines():
            if l.split('=')[0] in ['Protocol', 'Host', 'Port', 'Password', 'Method', 'UserKey', 'UserName']:
                spl = l.split('=')[0] + "=" + eval("s" + l.split('=')[0]) + "\n"
                lines.append(spl)
            else:
                lines.append(l)

    with open(tarfile, 'w', encoding='utf-8') as tarf:
        tarf.writelines(lines)

    pass

 4、将生成的公钥添加到服务器免密登入授权文件中去

​​​​​​echo "公钥内容" >>  .ssh/authorized_keys
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

零码程序员

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值