LoginSignup
7
9

More than 5 years have passed since last update.

Putty の設定をファイルベースにしてポータビリティを上げて、プロジェクトごとに別管理

Last updated at Posted at 2014-05-31

問題

  • デフォルトでは、Putty の保存済みセッションの設定はレジストリに落ちている
    • ポータビリティが低い
  • プロジェクトごとに設定一覧を分けたい場合に困る
    • プロジェクトごとに検証・ステージング・本番・CI 環境とかあると、過去のものが延々と混ざり続けて超邪魔なのです。
  • (おまけ) Putty は接続先以外の細かい設定なんかも個別になってる

環境

  • Windows 7 SP1 64bit
  • PuTTY ごった煮版
    • putty-0.60-JP_Y-2007-08-06.zip

私のオススメ解決法

方針

  • 設定は ini ファイルに落とす
  • プロジェクトごとのディレクトリに、zip 版 Putty を複製して配置

メリット

  • 各プロジェクト内でたくさん接続先を増やしても混ざらない
  • 環境移行や引き継ぎの時にディレクトリだけごそっと渡せる (個人の SSHKey やログファイルの容量には注意)
  • ログの配置とか深く考えなくてよい
    • project/putty/log な方針。
    • log/project/putty な方針な人は・・・ テンプレートディレクトリ複製時に設定変えて対応?

手順

Putty テンプレートディレクトリを作成

  1. zip 版 Putty を解凍
  2. 解凍したディレクトリ(putty.exe と同じ階層) に
    • putty.ini を配置
      • ここに接続設定のテンプレートを用意しておくと楽
    • log ディレクトリを作成

プロジェクトが増えた時

  1. テンプレートディレクトリごと複製
    • ログ・設定除くと 7MB 程度なので、ディスク容量とか気にしない方針で・・・
  2. (おまけ)接続先を増やす場合は、接続設定のテンプレートを読み込み → 以下の設定を変更 → 保存、とすると楽
    • セッション名 【重要】
    • ホスト名/IPアドレス、ポート
    • 背景色の変更
      • プロジェクト別、検証/本番で、など切り替えると一目瞭然
    • SSH 鍵 (必要なら)
    • ポートフォワード (必要なら)

putty.ini の例

デフォルト設定だと気に食わないので、個人的に好きな設定

putty.ini
[Generic]
UseIniFile=1

[Session:_template]
Present=1
HostName=""
LogFileName=".\log\&H_&Y&M&D_&T_puttyl.log"
LogType=1
LogFileClash=-1
LogFlush=1
SSHLogOmitPasswords=1
SSHLogOmitData=0
Protocol="ssh"
PortNumber=22
CloseOnExit=1
WarnOnClose=1
PingInterval=0
PingIntervalSecs=0
TCPNoDelay=1
TCPKeepalives=0
TerminalType="xterm"
TerminalSpeed="38400,38400"
TerminalModes="INTR=A,QUIT=A,ERASE=A,KILL=A,EOF=A,EOL=A,EOL2=A,START=A,STOP=A,SUSP=A,DSUSP=A,REPRINT=A,WERASE=A,LNEXT=A,FLUSH=A,SWTCH=A,STATUS=A,DISCARD=A,IGNPAR=A,PARMRK=A,INPCK=A,ISTRIP=A,INLCR=A,IGNCR=A,ICRNL=A,IUCLC=A,IXON=A,IXANY=A,IXOFF=A,IMAXBEL=A,ISIG=A,ICANON=A,XCASE=A,ECHO=A,ECHOE=A,ECHOK=A,ECHONL=A,NOFLSH=A,TOSTOP=A,IEXTEN=A,ECHOCTL=A,ECHOKE=A,PENDIN=A,OPOST=A,OLCUC=A,ONLCR=A,OCRNL=A,ONOCR=A,ONLRET=A,CS7=A,CS8=A,PARENB=A,PARODD=A,"
AddressFamily=0
ProxyExcludeList=""
ProxyDNS=1
ProxyLocalhost=0
ProxyMethod=0
ProxyHost="proxy"
ProxyPort=80
ProxyUsername=""
ProxyPassword=""
ProxyTelnetCommand="connect %host %port\n"
Environment=""
UserName=""
LocalUserName=""
NoPTY=0
Compression=0
TryAgent=1
AgentFwd=0
ChangeUsername=0
Cipher="aes,blowfish,3des,WARN,arcfour,des"
KEX="dh-gex-sha1,dh-group14-sha1,dh-group1-sha1,WARN"
RekeyTime=60
RekeyBytes="1G"
SshNoAuth=0
AuthTIS=0
AuthKI=1
SshNoShell=0
SshProt=2
SSH2DES=0
PublicKeyFile=""
RemoteCommand=""
RFCEnviron=0
PassiveTelnet=0
BackspaceIsDelete=1
RXVTHomeEnd=0
LinuxFunctionKeys=0
NoApplicationKeys=0
NoApplicationCursors=0
NoMouseReporting=0
NoRemoteResize=0
NoAltScreen=0
NoRemoteWinTitle=0
RemoteQTitleAction=1
NoDBackspace=0
NoRemoteCharset=0
ApplicationCursorKeys=0
ApplicationKeypad=0
NetHackKeypad=0
AltF4=1
AltSpace=1
AltOnly=0
AltMetaBit=0
CtrlTabSwitch=0
ComposeKey=0
CtrlAltKeys=1
RightAltKey=1
TelnetKey=0
TelnetRet=1
LocalEcho=2
LocalEdit=2
Answerback="PuTTY"
AlwaysOnTop=0
FullScreenOnAltEnter=0
HideMousePtr=0
SunkenEdge=0
IconFile=""
WindowBorder=1
CurType=0
BlinkCur=0
Beep=0
BeepInd=0
BellWaveFile=""
BellOverload=1
BellOverloadN=5
BellOverloadT=2000
BellOverloadS=5000
ScrollbackLines=2000
DECOriginMode=0
AutoWrapMode=1
LFImpliesCR=0
DisableArabicShaping=0
DisableBidi=0
WinNameAlways=1
WinTitle=""
TermWidth=100
TermHeight=60
Font="MS ゴシック"
FontIsBold=0
FontCharSet=0
FontHeight=10
FontQuality=0
FontVTMode=4
UseSystemColours=0
TryPalette=0
ANSIColour=1
Xterm256Colour=1
BoldAsColour=1
Colour0="64,64,64"
Colour1="0,0,0"
Colour2="222,222,222"
Colour3="85,85,85"
Colour4="0,0,0"
Colour5="0,255,0"
Colour6="0,0,0"
Colour7="85,85,85"
Colour8="187,0,0"
Colour9="255,85,85"
Colour10="0,187,0"
Colour11="85,255,85"
Colour12="187,187,0"
Colour13="255,255,85"
Colour14="0,0,187"
Colour15="85,85,255"
Colour16="187,0,187"
Colour17="255,85,255"
Colour18="0,187,187"
Colour19="85,255,255"
Colour20="187,187,187"
Colour21="255,255,255"
RawCNP=0
PasteRTF=0
MouseIsXterm=0
RectSelect=0
MouseOverride=1
Wordness0="0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"
Wordness32="0,1,2,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1"
Wordness64="1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,2"
Wordness96="1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1"
Wordness128="1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1"
Wordness160="1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1"
Wordness192="2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,2,2,2,2,2"
Wordness224="2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,2,2,2,2,2"
LineCodePage="UTF-8"
CJKAmbigWide=0
UTF8Override=1
Printer=""
CapsLockCyr=0
Use5Casis=0
ScrollBar=1
ScrollBarFullScreen=0
ScrollOnKey=0
ScrollOnDisp=1
EraseToScrollback=1
LockSize=0
BCE=1
BlinkText=0
X11Forward=0
X11Display=""
X11AuthType=1
LocalPortAcceptAll=0
RemotePortAcceptAll=0
PortForwardings=""
BugIgnore1=0
BugPlainPW1=0
BugRSA1=0
BugHMAC2=0
BugDeriveKey2=0
BugRSAPad2=0
BugPKSessID2=0
BugRekey2=0
StampUtmp=1
LoginShell=1
ScrollbarOnLeft=0
BoldFont=""
BoldFontIsBold=4625248
BoldFontCharSet=5031352
BoldFontHeight=1
WideFont=""
WideFontIsBold=5031356
WideFontCharSet=4625248
WideFontHeight=0
WideBoldFont=""
WideBoldFontIsBold=4625232
WideBoldFontCharSet=5031356
WideBoldFontHeight=0
ShadowBold=0
ShadowBoldOffset=1
TransparentMode=0
Shading=0
UseAlphaBlend=0
StoppedToDraw=0
BackgroundImageFile=""
SerialLine="COM1"
SerialSpeed=9600
SerialDataBits=8
SerialStopHalfbits=2
SerialParity=0
SerialFlowControl=1

今後

  • Vagrant ssh 時に Putty 起動できると捗る?
  • けど会社は Teraterm 派っぽい予感・・・
7
9
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
9