この章では PuTTY の少し高度な機能についての一般的な紹介を行います。徹底的な詳細とリファレンスについてはchapter 4に多くの情報があるでしょう。
PuTTY の複雑さや機能の多くは設定パネルにあります。なんとかセッションを開始したなら、そこからは単純なはずです。しかしそうは言ってもいくつかまだ有用な機能があります。
よく PuTTY のセッションで端末上の文字をもう一度入力したいことがあります。他の端末エミュレータ同様、PuTTY も再入力せずにコピーと貼り付けで済ますことができます。また、この機能は Windows のクリップボードを使うので、(たとえば) URL をウェブブラウザに貼り付けたり、文書作成ソフトや表計算ソフトから端末セッションに貼り付けたりできます。
デフォルトでは、PuTTY のコピーと貼り付けはマウスを使います。 (Unix の xterm
を使ったことがあれば馴染みがあるでしょう。) クリップボードにコピーするには端末ウインドウ上でマウスの左ボタンを押し、ドラッグしてテキストを選択します。マウスボタンを離すと、テキストが自動的にクリップボードにコピーされます。 Ctrl-C や Ctrl-Ins を押す必要はありません。それどころか、Ctrl-C を押すと PuTTY は Ctrl-C を表す文字をセッションを通じてサーバに送り、おそらくサーバで動作しているプログラムを停止してしまいます。
訳注: Ctrl-C は Unix 等で前面のプロセスを強制停止するときに使用します。
PuTTY への貼り付けは右ボタン (または 3 ボタンマウスを使っていてそう設定した場合は中ボタン。 section 4.11.1 参照。) で行います。 (Shift-Ins か “貼り付け / Paste” を Ctrl+右クリックのコンテキストメニューで実行しても同じです。) マウスの右ボタンでクリックすると PuTTY は Windows クリップボードの内容を読み取り、それをセッションに貼り付けます。
デフォルトでは、厳密な意味であなたがキーボードで入力したものとして処理されます。そのため、自動インデント機能のあるエディタに整形したテキストを貼り付ける場合は注意してください。クリップボードにある空白にエディタが挿入した空白が加わって書式が崩れるかもしれません。 (いくつかのリモートアプリケーションは、PuTTY にペースト処理だと提示するように求めてこの種の問題を回避できますが、あなたの使うアプリケーションがそうしない場合、PuTTY にはどうしようもありません。)
マウスの左ボタンをダブルクリックすると PuTTY は単語全体を選択します。ダブルクリックしてマウスボタンを離さずにドラッグすると単語単位で範囲選択できます。 (何を単語とみなすかを細かく変更できます。section 4.12.1 を参照してください) トリプルクリックするかトリプルクリックしてドラッグすると、PuTTY は行単位で文字を選択します。
行末までではなく、矩形選択をしたい場合、選択時に Alt キーを押します。矩形選択をデフォルトにできますが、その場合は Alt 押しが通常の選択になります。詳しくは section 4.11.3 を参照してください。
(いくつかの Unix 環境では、Alt+ドラッグはウインドウマネージャが捕捉します。 Shift+Alt+ドラッグでも矩形選択ができるはずなので、そちらを試してください。)
選択範囲が少しずれてしまった場合、マウスの中ボタンがあれば選択範囲の調整に使えます。 (マウスの中ボタンを貼り付けに設定した場合、マウスの右ボタンを代わりに使います。) 画面上の変更したい端の方近くでボタンを押して、ドラッグします。
PuTTY を Unix で動かしている場合 (単に Windows から Unix システムにつないでいるという意味ではなく)、デフォルトでは PuTTY からコピーしたテキストを他のアプリケーションで張り付ける時に同様のマウス操作を使います。 Ctrl-C や Ctrl-V は思ったような動作をしないでしょう。 Section 4.11.4 を見れば、その理由と動作の変更方法が判ります。 (Windows では他のアプリケーションと共有された単一の選択領域があるので、この混乱は起こりません。)
サーバが PuTTY ウインドウ内のマウスクリックを自分で処理する場合があります。その場合、マウスカーソルが矢印に変わり、マウスを使ったコピーと貼り付けは Shift キーを押さないとできません。この機能についての詳細と設定については section 4.6.2 と section 4.11.2 を参照してください。
例えばキーボードを使ってコピーと貼り付けを行うようにするなど、大部分のふるまいは変更できます。 Section 4.11 を参照してください。
PuTTY は端末の上に流れ去ったテキストを記録しています。そのため、読みたいテキストが画面に出たけれどもスクロールが速すぎて読もうと思ったときには流れてしまっていた場合、右端のスクロールバーでセッションの履歴を振り返って見つけ出すことができます。
スクロールバーと同様に、Shift-PgUp や Shift-PgDn を押しても画面を戻したり進んだりできます。
一行ずつスクロールするにはCtrl-PgUp と Ctrl-PgDn を使います。また、最上部や最下部へは Ctrl-Shift-PgUp と Ctrl-Shift-PgDn を使います。これらは設定でスクロールバーを見えなくしていても使えます。
デフォルトでは直近の 2000 行を確認できるように保持しています。この値は設定ダイアログから増やしたり減らしたりできます。 section 4.7.3 を参照してください。
PuTTY の端末ウインドウの右上にあるアイコンを左クリックするか、タイトルバー上で右クリックすると、Windows 標準のシステムメニューが開きます。最小化, 移動, サイズ変更, 閉じる などの項目があると思います。
PuTTY のシステムメニューにはこれらの他に追加のコマンドがあります。追加のコマンドについては以下で説明します。
(これらのオプションは PuTTY のウインドウ上で Ctrl を押しながら右クリックすると出るコンテキストメニューでも選択できます。)
“イベントログ / Event Log” をシステムメニューから選ぶと、PuTTY が接続の最中にログした重要なイベントが記録された小さなウインドウが開きます。ほとんどのイベントはセッションの開始の際のものですが、いくつかセッションの最中に起こることもあり、また 1 つか 2 つは最後に起きる場合があります。
マウスをつかってイベントログの行を複数選択でき、コピーボタンを押すとクリップボードにコピーできます。バグレポートをする場合は、イベントログの内容が添付してあると有用な場合がよくあります。
(イベントログはセッションのログとは異なる機構です。セッションログについては section 3.2 で述べます。)
現在のセッションのプロトコルによっては“特殊コマンド / special commands”サブメニューがある場合があります。たとえば “ブレーク / break”シグナルなど、これらは接続から通常のデータに加えて送れるプロトコル固有のトークンです。通常、これらの正確な効果はサーバ次第です。現在のところ Telnet, SSH, シリアル接続のみで特殊コマンドを使えます。
“ブレーク / break”シグナルはキーボードから Ctrl-Break を入力しても送れます。
これは何の効果もないはずです。
SSH-2 のみで使用できます。 鍵交換を再実行 / repeat key exchange を強制的に実行します (そして関連するタイマーとカウンターをリセットします)。 rekey についての詳しい情報は section 4.20.2 を参照してください。
SSH-2 のみで利用できます。このサブメニューは、サーバのホスト鍵に PuTTY がキャッシュしていない種類の(そのため使用しなかった)ものがある場合にのみ現れます。ここで鍵を選択すると、その時点や将来にその鍵を使えるようになります。 PuTTY は新たにその鍵で鍵交換を行い、永続的キャッシュに鍵を加えます (接続の最初に使ったホスト鍵を信用して相互認証します)。以降は現在のセッションでは新しい鍵を使います。将来のセッションでは設定によっては実際には使われないかもしれません(section 4.21.1 を参照)。
たとえサーバが PuTTY のより優先する種類の鍵を提示しても、通常 PuTTY はホスト鍵の確認プロンプトを避けるために既知のホスト鍵を使い続けます。その結果、何年も使っているサーバではその間のアップグレードにより、あなたは新しいユーザが使うホスト鍵よりも古い鍵を使い続けることになるかもしれません。 SSH プロトコルにはあいにくホスト鍵を切り替えてロールオーバーする体系的な仕組みがありませんが、このメニューによって手動でアップグレードできます。
SSH-2 のセッション内でのみで使用できます。オプションの拡張機能なのでサーバが対応していない場合があります。 PuTTY はサーバのデフォルトの break 長を要求します。
SSH-2 のセッション内でのみで使用できます。さまざまな POSIX シグナルを送信します。全てのサーバで対応しているわけではありません。
PuTTY は Backspace 押下時にこれを送るように設定できます。 section 4.32.3 を参照してください。
これは何の効果もないはずです。
PuTTY は Ctrl-C でこれを送るように設定できます。 section 4.32.3 を参照してください。
PuTTY は Ctrl-Z でこれを送るように設定できます。 section 4.32.3 を参照してください。
シリアル接続ではただ一つだけ“ブレーク / Break”が使用できます。
PuTTY のシステムメニューは新しいセッションを始めるための簡単な方法をいくつか用意しています:
システムメニューの “設定の変更 / Change Settings”を選ぶと、PuTTY は最初の設定ダイアログの制限版を表示します。ここから端末の大きさ, フォント, キーの動作, 色等々、現在のセッションのほとんどの設定を調整できます。
いくつかのオプションはこの制限版のダイアログには表示されません。それらは通常セッションの途中で変更する意味がないからです。 (たとえば、セッションの途中で SSH から Telnet に切り替えることはできません。)
このダイアログの設定を後で使えるように保存済みセッションにも適用できます。保存済みセッションについては section 4.1.2 を参照してください。
このシステムメニュー項目は端末スクリーンの内容 (最後の入力まで) 全てとスクロールバックを一度に クリップボード にコピーします。
システムメニューの “スクロールバックをクリア / Clear Scrollback”項目で PuTTY にスクロールして画面外に出たテキストを消去できます。例えば秘密の情報を表示して、誰かが肩越しに覗いたときに見えないようにしたいときなどに便利かもしれません。 (ただしこれは一般のユーザがスクロールバーを使って読むことができなくなるだけです。 PuTTY のメモリ内からの削除を保証するものではありません。)
“端末をリセット / Reset Terminal” 項目は端末エミュレーションを完全にリセットします。 VT シリーズの端末は複雑なプログラムなので容易に表示したテキスト全てが読めなくなる可能性があります。 (これは例えば間違えてバイナリファイルを端末に出力したときに起こりえます。) もしそうなったら、端末をリセット を選ぶことで元に戻るはずです。
訳注: Unix 系 OS のシェル上で表示中の画面をクリアするには Ctrl-L を押します (または tput clear
)。端末を初期化するにはシェルから Ctrl-J (LF)、reset
、Ctrl-J を続けて入力してからプロンプトを再表示するためにもう一度 Ctrl-J (または Enter) を押します。
もし最大化したウインドウのタイトルバーの見栄えが悪いとか邪魔だと思うならば、フルスクリーンモードを選ぶと PuTTY を“より”最大化できます。 PuTTY が画面全体に広がり、フレーム, タイトルバー, スクロールバーが消えます。 (スクロールバーは消さないように設定できます。 section 4.7.3 を参照してください。)
フルスクリーンモードでも画面の一番左上をマウスで左クリックするとシステムメニューが使えます。
何らかの目的で画面への出力全てのログを取りたい場合があるかもしれません。設定ダイアログの “ログ / Logging”パネルでこれが可能です。
セッションログを開始するには、システムメニューから“設定の変更 / Change Settings”を選択してログパネルを表示します。ログのファイル名を入力し、ログモードを選びます。 (コントロールシーケンスを含む出力全てをログしたり、表示可能なテキストだけをログしたりできます。ログの目的によって選びます。) “適用 / Apply” をクリックするとログが始まります。後でログパネルを開いて“なし / None”を選ぶと記録が止まり、PuTTY はログファイルを閉じるので読むことができます。
オプションや詳細については section 4.2 を参照してください。
特殊文字、(例えばアクセント付き文字や罫線描画文字) がセッションで正しく表示されない場合、PuTTY がサーバから送られた文字を間違った文字セットで解釈している可能性があります。さまざまな文字セットが大量に存在する一方で PuTTY がどれを使うべきか判断する良い方法がないので、これが起こる可能性は十分ありえます。
“設定の変更 / Change Settings”で “変換 / Translation”パネルを見ると、たくさんの文字セットやその他のオプションが選択できることがわかります。あとは必要なオプションを見つけるだけです。 (詳細は section 4.10 を参照してください。
SSH プロトコルは安全に X Window System グラフィカルアプリケーションを暗号化した SSH 接続を通して転送できます。そのため SSH サーバ上でアプリケーションを実行し、X ネットワークトラフィックを平文で送ることなくウインドウをローカルマシンに表示することができます。
この機能を使うには、Windows 上で Cygwin/X, X-Win32, Exceed のような X ディスプレイサーバを実行する必要があります。おそらくディスプレイ番号 0 にインストールされるはずです。そうでなければ X サーバのマニュアルに書いてあるはずです。
そうしたら SSH セッション開始前に X11 パネル (section 4.27 参照) の“X11 転送を有効にする / Enable X11 forwarding”を選びます。 “X ディスプレイの場所 / X display location” 入力ボックスはデフォルトで空になっており、PuTTY は デフォルトで :0
などの X サーバが通常インストールされている場所を使います。変更の必要があるならば、変更します。
そうしたら SSH サーバに通常通りにログインします。接続時に X 転送の確立が成功したかどうかを確認するには、PuTTY のイベントログ (section 3.1.3.1 参照) を確認します。このように書いてあるはずです:
2001-12-05 17:22:01 Requesting X11 forwarding
2001-12-05 17:22:02 X11 forwarding enabled
リモートシステムが Unix か Unix ライクならば、SSH サーバ上で DISPLAY
環境変数がディスプレイ 10 かそれ以上を指しているはずです。
fred@unixbox:~$ echo $DISPLAY
unixbox:10.0
これがうまくいったら、X アプリケーションをリモートセッションで実行し、そのウインドウを手元の PC 上で表示できるはずです。
X11 転送に関して詳しくは section 4.27 を参照してください。
SSH プロトコルは任意の (TCP) ネットワーク接続を SSH 接続を通すことで暗号化して転送する機能があります。例えばこの機能で、パスワードを途中で盗み見されることなく自宅のコンピュータからリモートの POP-3 サーバに接続できます。
ポート転送でローカルマシンからリモートサーバに接続するには:
popserver.example.com:110
)。
そうしたら、セッションを開始しログインします。 (ポート転送はログインするまで有効になりません。そうでなければネットワーク攻撃に悪用されたり他人の VPN へアクセスできたりしてしまいます。) PuTTY がポート転送を正しく設定できたか調べるには PuTTY のイベントログを確認します (section 3.1.3.1 参照)。このようになっているはずです:
2001-12-05 17:22:10 Local port 3110 forwarding to
popserver.example.com:110
これでローカル PC の受け側ポートに接続すると、送り先のマシンのサービスと同じようにレスポンスが返るはずです。なのでこの例では メールクライアントの設定で POP-3 サーバとして popserver.example.com:110
の代わりにlocalhost:3110
が使えます。 (もちろん PuTTY のセッションが終了してしまうとポート転送も中断します。)
逆方向の転送も可能です。つまり、サーバマシンの特定のポートをあなたの PC 上のサービスへの接続として転送できます。そのためには、“ローカル / Local”の代わりに “リモート / Remote”ラジオボタンをチェックします。
この場合 “受け側ポート / Source port”はサーバ側のポートを指定します (サーバは通常1024 番未満のポートの転送は許可しません)。
ローカルの接続をリモートに転送する別の方法は、動的な SOCKS プロキシを使うことです。このモードでは PuTTY が SOCKS サーバとして振舞います。 SOCKS 対応のプログラムは任意のホストを送り先とした転送接続を開始できます。つまり、いくつもの静的な接続先リストの代わりになります。このモードを使うには “ローカル / Local”の代わりに “ダイナミック / Dynamic”を選び “送り先 / Destination”には何も入力しません (無視されます)。 PuTTY は 指定したポートで SOCKS 接続を待ち受けます。ほとんどのウェブブラウザはこの SOCKS プロキシに接続するように設定できます。また、プロキシ / Proxy パネルで設定すれば 他の PuTTY の接続をこれを通して行うこともできます (詳しくは section 4.18 を参照してください)。
通常、受け側のポートはSSH クライアントのマシンとサーバマシン以外からの接続を受け付けません (それぞれローカルとリモートの転送の場合)。これを変更できるのがトンネル / Tunnels パネルです:
接続を待ち受ける IP アドレスも指定できます。通常 Windows マシンは 127.*.*.*
の範囲の IP アドレスはループバックアドレスなので、その 1 つを待ち受けアドレスとできます。そのため (例えば) 127.0.0.5:79
をリモートマシンの finger
ポートに転送した場合、finger fred@127.0.0.5
のようにコマンドを実行できます。これは転送元のポートに接続するプログラムが使うポート番号を変更できないときに便利です。この機能はローカルからリモートへ転送するポートに使えます。 SSH-1 ではリモートからローカルへの転送ポートには使えません。 SSH-2 では仕様上はサポートされていますがサーバがそれに対応するとは限りません。
(もし Windows XP Service Pack 2 を使っている場合は 127.0.0.5
のようなアドレスを使うために Microsoft の修整プログラムが必要です。 question A.7.17 を参照してください。)
ポート転送に関しての他のオプションは section 4.28 を参照してください。
SSH を介して転送する接続が別の PuTTY による SSH 接続の場合、“リモートホストの論理名 / Logical name of remote host”オプションが便利です。このオプションは PuTTY にどのホスト鍵を想定するべきか通知するために使用します。詳しくは section 4.16.5 を参照してください。
PuTTY はネットワーク接続の代わりにシリアルポートへ直接接続できます。このモードでは PuTTY のウインドウにタイプしたテキストを直接コンピュータのシリアルポートに送信し、ポートから受け取ったデータを PuTTY のウインドウに表示します。例えば、シリアルポートが他のシリアル接続を持つコンピュータに繋がっている場合に使います。
この接続を行うには、 “Serial” を “セッション / Session”設定パネルの“接続タイプ / Connection type”ラジオボタンから選びます。 (section 4.1.1 参照) “ホスト名 / Host Name”と “ポート / Port”は“シリアルポート / Serial line”と “スピード / Speed”に変わり、データ転送に使用するシリアルポート (もし複数のポートがあるなら) とスピード (ボーレート) が指定できるようになります。詳細な設定オプション (データビット数, ストップビット, パリティ, フロー制御) については “シリアル / Serial”設定パネルを使います (section 4.31 参照)。
デバイスによっては PuTTY をシリアルモードで開始したら、あなたが先に行動する必要があるかもしれません。データをシリアルポートから送り、反対側のデバイスにあなたの存在を知らせます。もし PuTTY のシリアル接続を開始してウインドウに何も現れなければ、Enter を何度か押してみてください。
シリアル接続は接続を終了したことを相手に知らせる明確な方法がありません。そのため、シリアルモードではウインドウを閉じるまで接続は閉じません。
インターネットプロトコルの多くはテキスト形式でのコマンドとレスポンスで成っています。例えば、SMTP (メールの送信に使うプロトコル)、NNTP (Usenet のようなネットニュースを転送するのに使うプロトコル)、そして HTTP (ウェブページを送信するのに使うプロトコル)、これら全ては判読可能なテキストのコマンドで構成されています。
時には、これらのサービスに直接接続して“手作業で”コマンドを入力してプロトコルを話し、レスポンスを確認するのが便利なことがあります。 Unix マシンではシステムの telnet
コマンドで適切なポートに接続できます。例えば、telnet mailserver.example.com 25
でメールサーバの SMTP サービスと直接対話できるようになるはずです。
Unix の telnet
プログラムはこのような機能を持っていますが、実際に使われるプロトコルは Telnet ではありません。実際、実質的なプロトコルは全く存在しないのです。送信されるバイト列はあなたがタイプした通りのもので、画面に表示されるものもサーバから送信された通りのバイト列です。 Unix の telnet
は接続先のサービスが本物の Telnet サービスかどうかを検出・推測しようとします。 PuTTY では無難にユーザが指定する形になっています。
その種のサービスへデバッグ用の接続を確立するには、単に“セッション / Session”設定パネルの“接続タイプ / Connection type”ボタンから 4 番目のプロトコル “Raw” を 選びます。 (section 4.1.1 参照) そうしたら、ホスト名とポート番号を入力して接続します。
PuTTY は Telnet プロトコルでサーバに接続できます。
Telnet はおそらく SSH が登場するまでは最も一般的なリモートログインプロトコルでした。複数のサーバ OS (特に Unix や VMS) で使われるほどに一般的で、特定のサーバ機能に対応するためにオプションでプロトコル拡張に対応していました。
SSH と違い、Telnet は保護されていないネットワーク接続の上で動作します。そのためインターネット上で使うのは良くない考えです。 (しかし 2020 年時点でもある程度は使われています。)
PuTTY は Rlogin プロトコルでサーバに接続できます。
Rlogin は概念では Telnet に似ていますが、Unix マシン間の接続に焦点を当てています。 “特権ポート” (1024 番未満のポート, Unix では伝統的に root
以外に利用できない) を利用したパスワードなしのログインに対応していました。究極的に、クライアントの IP アドレスは Unix マシンが所有しており、そのマシンは特権ポートを適切に保護するというサーバの信頼で成り立っていました。
Telnet のように、Rlogin も保護されていないネットワーク接続で動作します。
PuTTY は SUPDUP プロトコルでサーバに接続できます。
SUPDUP は PDP-10 や Lisp マシンで 1975 年から 1990 年に使われたログインプロトコルです。 Telnet や Rlogin と同様に保護されていないので、近年のシステムはほぼ全く対応していません。
この接続を確立するには、“セッション / Session”パネルの“接続タイプ / Connection type”から “SUPDUP” を選択します (section 4.1.1 を参照)。他のオプション (文字セットや MORE 処理、スクロール) については、“SUPDUP” 設定パネルを利用します (section 4.34 参照)。
SUPDUP では SSH 等の他のプロトコルに比べて端末エミュレーションがネットワークにより結合しています。そのため SUPDUP プロトコルは PuTTY のみで利用可能で、Plink などの他のコマンドラインツールでは利用できません。
SUPDUP プロトコルは端末の大きさを変更できません。そのためこの機能は SUPDUP セッション中は無効化されます。
SUPDUP は一端が他方に接続の終了を知らせるうまい仕組みがありません。そのため PuTTY は SUPDUP モードではあなたがウインドウを閉じるまで接続をつないだままにします。
PuTTY はコマンドラインパラメータを指定すればユーザの介入なしに様々なことができます (例えば、コマンドプロンプトウインドウや Windows ショートカットから)。
これらのオプションで設定ウインドウを迂回してセッションを開始できます。
host
というサーバへ接続するには:
putty.exe [-ssh | -ssh-connection | -telnet | -rlogin | -supdup | -raw] [user@]host
この構文を使った場合、設定は標準の設定を元に (section 4.1.2 参照)、user
を指定した場合はユーザ名を変更します。また、プロトコルも指定すればデフォルトから変更できます (section 3.11.3.2 参照)。
telnet のセッションでは次の代替構文が使えます。 (そのためウェブブラウザで PuTTY を telnet URL の URL ハンドラに指定できます):
putty.exe telnet://host[:port]/
シリアルポートへの接続をするには、COM1 ならば:
putty.exe -serial com1
保存しておいたセッション session name
を開始するには、-load
オプションを使います (section 3.11.3.1 で説明します)。
putty.exe -load "session name"
-cleanup
もし -cleanup
オプション付きで起動したなら、PuTTY は (ユーザに確認してから) レジストリと 乱数シードファイルをローカルマシンから削除します。また、Windows 7 以降では“ジャンプリスト”の最近起動したセッションの情報も削除しようとします。
ただし マルチユーザシステムでは -cleanup
は現在ログインしているユーザのレジストリとファイルしか削除しません。
([Custom] ini ファイルを使っている場合、アクティブな ini ファイルだけを削除します。 section 2.1.2 を参照してください。)
PuTTY とその関連ツールはコマンドラインオプションの多くが共通化されています。このセクションでは全てのツールで利用可能なオプションを挙げます。特定のツールに固有のオプションはそのツールの章で扱います。
-load
: 保存済みセッションを読み込む
-load
オプションを使うと PuTTY は保存済みセッションから接続の情報を読み込みます。もし設定がホスト名を含むならば、このオプションだけで PuTTY はセッションを開始できます。
セッション名が空白を含む場合、ダブルクオート ("
) で囲む必要があります。
PuTTY の保存済みセッションを開始する Windows ショートカットを作るのにこのオプションを使います。ショートカットのリンク先は次のようになります
d:\path\to\putty.exe -load "my session"
(後方互換性のために PuTTY は代替表記もサポートしています。 putty @sessionname
と実行するのは putty -load "sessionname"
と同じです。 @
形式ではダブルクオートは不要で @
はコマンドラインの一番最初のパラメータでなければなりません。このオプションは廃止予定です。)
-ssh
, -ssh-connection
, -telnet
, -rlogin
, -supdup
, -raw
, -serial
接続に使うプロトコルを選ぶには以下の一つのオプションを使います:
-ssh
は SSH プロトコルを選択します。
-ssh-connection
は bare ssh-connection プロトコルです。 (これは特別な状況でのみ有用です。詳しくは section 4.30 を参照してください。)
-telnet
は Telnet プロトコルを選択します。
-rlogin
は Rlogin プロトコルを選択します。
-supdup
は SUPDUP プロトコルを選択します。
-raw
は raw プロトコルを選択します。
-serial
はシリアル接続を選択します。
これらの内ほとんどのオプションはファイル転送ツール PSCP と PSFTP では使えません (SSH プロトコルと bare ssh-connection でのみ動作するからです)。
これらのオプションはセッションパネルのプロトコル選択のボタンと同じものです (section 4.1.1 参照)。
-v
: 表示の冗長性を増やす
ほとんどの PuTTY ツールは -v
オプションを指定して現在行っている処理についてより多くの情報を表示できます。接続を行うときに問題がある場合や単に気になるときは、このスイッチを入れると何が起きているか判るかもしれません。
-l
: ログイン名を指定する
リモートサーバにログインするユーザ名を -l
オプションで指定できます。例えば、plink login.example.com -l fred
となります。
このオプションは設定ダイアログの接続パネルにあるユーザ名欄と同じです (section 4.17.1 参照)。
-L
, -R
, -D
: ポート転送の設定
PuTTY の設定ダイアログでのポート転送と同様 (section 4.28 参照)、コマンドラインでポート転送を設定できます。このオプションは Unix の ssh
プログラムと同じ働きをします。
ローカルポート (例えば 5110) をリモートのあて先 (例えば popserver.example.com
のポート 110) に転送するには、次のように書きます:
putty -L 5110:popserver.example.com:110 -load mysession
plink mysession -L 5110:popserver.example.com:110
リモートポートをローカルのあて先に転送するには、-L
オプションの代わりに -R
を使います。
putty -R 5023:mytelnetserver.myhouse.org:23 -load mysession
plink mysession -R 5023:mytelnetserver.myhouse.org:23
待ち受け側の IP アドレスを指定する場合は引数の前に記述します:
plink -L 127.0.0.5:23:localhost:23 myhost
SOCKS ベースの動的ポート転送を設定するには -D
オプションを使います。この場合、ポート番号を指定するだけです:
putty -D 4096 -load mysession
ポート転送についての全般的な情報は section 3.5 を参照してください。
これらのオプションはファイル転送ツール PSCP と PSFTP では利用できません。
-m
: リモートコマンドやスクリプトをファイルから読み込む
-m
オプションは PuTTY の設定ダイアログの SSH パネルにある“リモートコマンド / Remote command” と似た機能を実行します (section 4.19.1 参照)。しかし、-m
オプションにはローカルファイル名を指定し、コマンドはそこから読み込まれます。
あるサーバ (特に Unix システム) では、ファイルに複数行の記述をしていくつものコマンドを連続して実行することもできます。しかしこれは濫用と判断される場合があり、全てのサーバで動くとは限りません。特に、ある種の“組み込み”サーバ、例えばCiscoのルータでは動かないことが知られています。
このオプションはファイル転送ツール PSCP と PSFTP では利用できません。
-P
: ポート番号を指定する
-P
オプションで接続先のポート番号を指定します。例えばもし Telnet サーバが ポート 23 ではなく ポート 9696 で動作しているならば:
putty -telnet -P 9696 host.name
plink -telnet -P 9696 host.name
(このオプションは PuTTY よりも Plink で有用です。 PuTTY ならば putty -telnet host.name 9696
と書けるからです。)
このオプションは PuTTY の設定ダイアログのセッションパネルのポート番号と同じです (section 4.1.1 参照)。
-pwfile
と -pw
: パスワードを指定するリモートログインを自動化する単純な方法はパスワードをコマンドラインで指定することです。
-pwfile
オプションはファイル名を引数に取ります。ファイルの最初の行がパスワードとして使用されます。
訳注: パスワードファイルは、ユーザディレクトリ内など他ユーザが読み取れない場所に作成します。
-pw
オプションはパスワード自体を引数に取ります。これはそのコンピュータを別の人が同時に使っている場合、安全ではありません。なぜなら他のユーザが動作中のプロセスを一覧した場合、(パスワードを含んでいる) コマンドラインが表示されうるからです。 -pw
は後方互換性のために維持されています。 -pwfile
を代わりに使うべきです。
これらのオプションは SSH プロトコルでのみ動作します。根本的な制限により、Telnet, Rlogin, SUPDUP プロトコルでは自動的なパスワード認証に対応していません。
-agent
と -noagent
: 認証に Pageant を使用するかどうか
-agent
オプションは SSH 認証に Pageant を使い、-noagent
は使わないようにします。これらのオプションは SSH を使う場合のみ意味があります。
Pageant についての全般的な情報は chapter 9 を参照してください。
これらのオプションは PuTTY の設定ダイアログの認証パネル にある Pageant 認証のチェックボックスと同じ働きをします (section 4.23.4 参照)。
-A
と -a
: エージェント転送の制御
-A
オプションは SSH エージェント転送を有効にして、-a
は無効にします。これらのオプションは SSH を使う場合のみ意味があります。
Pageant についての全般的な情報は chapter 9 を、エージェント転送については section 9.4 を参照してください。このオプションを有効にするとセキュリティ上の危険があるので注意してください。詳しくは section 9.6 を参照してください。
これらのオプションは PuTTY の設定ダイアログの認証パネル にあるエージェント転送のチェックボックスと同じ働きをします (section 4.23.7 参照)。
これらのオプションはファイル転送ツール PSCP と PSFTP では利用できません。
-X
と -x
: X11 転送の制御
-X
オプションは SSH の X11 転送を有効にし、-x
は無効にします。これらのオプションは SSH を使う場合のみ意味があります。
X11 転送については section 3.4 を参照してください。
これらのオプションは PuTTY の設定ダイアログの X11 パネルにある X11 転送チェックボックスと同じ働きをします (section 4.27 参照)。
これらのオプションはファイル転送ツール PSCP と PSFTP では利用できません。
-t
と -T
: 擬似端末の確保の制御
-t
オプションで PuTTY がサーバに擬似端末を確保するようになり、-T
で確保しないようになります。これらのオプションは SSH を使う場合のみ意味があります。
これらのオプションは PuTTY の設定ダイアログの SSH パネルにある“疑似端末を確保しない / Don't allocate a pseudo-terminal”チェックボックスと同じ働きをします (section 4.26.1 参照)。
これらのオプションはファイル転送ツール PSCP と PSFTP では利用できません。
-N
: シェルやコマンドを開始しない
-N
オプションを指定すると PuTTY はリモートサーバでシェルやコマンドを開始しないようになります。 SSH コネクションをポート転送のためだけに使いたい場合で、アカウントがシェルを実行する権限を持たない場合に使います。
この機能は SSH-2 のみで利用できます (SSH-1 では常にシェルが起動することになっているいるからです)。
このオプションは PuTTY の設定ダイアログの SSH パネルにある“シェルやコマンドを開始しない / Don't start a shell or command at all”チェックボックスと同じ働きをします (section 4.19.2 参照)。
このオプションはファイル転送ツール PSCP と PSFTP では利用できません。
-nc
: シェルやコマンドの代わりにリモートネットワーク接続を確立する
-nc
オプションを指定すると Plink (または PuTTY) はシェルやコマンドを実行しません。その代わり、あなたの指定したホスト名とポート番号に対してネットワーク接続を確立するようにリモートサーバに指示し、その接続をメインセッションとして扱います。
ホスト名とポート番号の指定は -nc
オプションのパラメータに指定します。次のようにホスト名とポート番号をコロンで区切ります:
plink host1.example.com -nc host2.example.com:1234
これは対象のホストがプロキシホストを経由した SSH 転送でのみ到達できる場合に役立ちます。別の方法として、プロキシホストへの SSH 接続を確立し、ポート転送することもできます。ですが接続を必要に応じて開始したい場合、この機能も使えます。
しかしこの機能はプロキシを使う側のプログラムがネットワーク接続の代わりにサブプロセスを実行する必要があります。 PuTTY 自体は“ローカル / Local”プロキシで行えますが、内蔵のより柔軟な方法として“SSH”プロキシがあります。 (両方の説明は section 4.18.1 を参照してください。) そのためこの機能は別のクライアントプログラムと組み合わせる場合にこそ役立つはずです。
この機能は SSH-2 のみで利用できます (SSH-1 では常にシェルが起動することになっているいるからです)。このオプションはファイル転送ツール PSCP と PSFTP では利用できません。 PuTTY でも利用可能ですが、Plink 以外では役に立たないでしょう。また、-nc
はポート転送と同じサーバ側の機能を使います。そのためサーバ管理者がポート転送を無効にしている場合は動作しません。
(このオプションは Unix プログラムの nc
(“netcat” の略) に倣って -nc
と名づけられました。このコマンド “plink host1 -nc host2:port
” は機能的に、nc
をサーバで起動して指定したあて先に接続する “plink host1 nc host2 port
” ととても似ています。しかし Plink 内蔵の -nc
オプションはサーバに nc
プログラムをインストールしておく必要がありません。)
-C
: 圧縮の有効化
-C
オプションはネットワーク上を転送するデータを圧縮します。これらのオプションは SSH を使う場合のみ意味があります。
このオプションは PuTTY の設定ダイアログの SSH パネルにある“圧縮を有効にする / Enable compression”チェックボックスと同じ働きをします (section 4.19.3 参照)。
-1
と -2
: SSH プロトコルバージョンを指定する
-1
と -2
オプションは PuTTY に SSH プロトコルのバージョン 1 やバージョン 2 を使うよう強制します。これらのオプションは SSH を使う場合のみ意味があります。
これらのオプションは PuTTY の設定ダイアログの SSH パネルにある SSH プロトコルバージョンの選択と同じ働きをします (section 4.19.4 参照)。
-4
と -6
: インターネットプロトコルバージョンを指定する
-4
と -6
オプションは PuTTY に 外向きの接続のほとんどについて古いインターネットプロトコルの IPv4 か新しい IPv6 を使うように強制します。
これらのオプションは PuTTY の設定ダイアログの接続パネルにあるインターネットプロトコルの選択 “IPv4” や “IPv6” と同じ働きをします (section 4.16.4 参照)。
-i
: SSH 秘密鍵を指定する
-i
オプションは PuTTY がサーバとの認証に使う *.PPK
形式の秘密鍵のファイル名を指定します。これらのオプションは SSH を使う場合のみ意味があります。
Pageant を使用している場合、公開鍵 (RFC 4716 か OpenSSH 形式)を指定して使用する鍵を限定できます。 (もちろん、Pageant を起動していない場合はこの方法は使えません。)
公開鍵認証についての全般的な情報は chapter 8 を参照してください。
このオプションは PuTTY の設定ダイアログの認証パネルにある“認証のための秘密鍵ファイル / Private key file for authentication”ボックスと同じ働きをします (section 4.24.1 参照)。
-cert
: SSH 証明書を指定する
-cert
オプションはあなたの公開鍵の署名を含む証明書のファイル名を指定します。このオプションを指定すると、PuTTY は対応する鍵で認証しようとするときに、ただの公開鍵の代わりに証明書を提示します。 (これは Pageant に格納されている鍵でも PuTTY がファイルから読み込んだ鍵でも同様です。)
このオプションは PuTTY の設定ダイアログの認証パネルにある“秘密鍵と共に使う証明書 / Certificate to use with the private key”ボックスに相当します (section 4.24.2 参照)。
-no-trivial-auth
: 認証が瑣末に完了した場合に切断するこのオプションは、サーバがいかなる種類のパスワード、署名、トークンも要求しないままに認証を受け付けたときに、PuTTY に SSH セッションを放棄させサーバから切断させます。
これが必要な事例については section 4.23.3 を参照してください。
-loghost
: 論理ホスト名を指定する“リモートホストの論理名 / Logical name of remote host”オプションは PuTTY の通常の SSH ホスト鍵キャッシュポリシーの代わりに、(PuTTY が接続していると思っている場所とは実際に違う場合に) 接続が最終的に行き着くはずのホスト名を指示できます。ホスト名か、もしくはホスト名に続けてコロンとポート番号を記述します。詳しくは section 4.16.5 を参照してください。
-hostkey
: ホスト鍵を手動で指定するこのオプションは PuTTY の通常の SSH ホスト鍵キャッシュポリシーの代わりに、どのホスト鍵を受け取るべきかを指定できます。通常のレジストリにあるホスト鍵リストが使えないときに便利です。このオプションの引数はホスト鍵の指紋か、SSH-2 公開鍵のバイナリ表記です。詳細は section 4.21.3 を参照してください。
複数の鍵を許可したい場合、このオプションを複数回指定します。
-pgpfp
: PGP 鍵の指紋を表示するこのオプションを使うと PuTTY ツールは通常の動作をする代わりに PuTTY の PGP マスター鍵の指紋を表示します。 新しいバージョンを検証する助けになります。詳しくは appendix F を参照してください。
-sercfg
: シリアルポートの設定を指定するこのオプションでシリアルポートの設定パラメータ (ボーレート, ストップビット等) を指定します。引数は次の値をコンマ区切りのリストで指定します:
1
”, “1.5
”, “2
”
n
” はパリティなし, “o
” は奇数, “e
” は偶数, “m
” はマーク, “s
” はスペース。
N
” はフロー制御なし, “X
” は XON/XOFF, “R
” は RTS/CTS, “D
” は DSR/DTR 。
例えば、“-sercfg 19200,8,n,1,N
” は 19200 ボー, データビット 8, パリティなし, ストップビット 1, フロー制御なしを意味します。
-sessionlog
, -sshlog
, -sshrawlog
: セッションログを有効にする
これらのオプションで PuTTY ネットワークツール がログファイルを書き出すようになります。それぞれのオプションは引数にファイル名が必要です。例えば、“-sshlog putty.log
” とすると SSH パケットログを “putty.log
” というファイルに書き込みます。それぞれのオプションは別々のログモードを表し、すべて GUI から指定できます:
-sessionlog
は “全セッション出力 / All session output”ログモード
-sshlog
は “SSH パケット / SSH packets”ログモード
-sshrawlog
は “SSH パケットと生データ / SSH packets and raw data”ログモード
ログの設定についての詳しい情報は section 4.2 を参照してください。
-logoverwrite
, -logappend
: 既存のログファイルの処理を指定するもしログが有効化されて (保存済みセッションや、他のコマンドラインオプションによって)、そしてログファイルがすでに存在した場合、これらのオプションで PuTTY ネットワークツールがユーザに尋ねることなくどう処理するかを指示できます。詳細は section 4.2.2 を参照してください。
-proxycmd
: ローカルプロキシコマンドを指定するこのオプションは PuTTY がローカルマシンでコマンドを実行してネットワーク接続のプロキシとして使うモードを有効にします。引数としてシェルコマンド文字列を要求します。
詳しい情報は section 4.18.1 やほかのプロキシ設定を参照してください。とりわけ特殊シーケンスは引数の文脈で処理されるので、バックスラッシュ文字自体は二重化する必要があります(\
という文字をコマンドで表現するにはコマンドラインでは \\
とします)。
-restrict-acl
: Windows プロセス ACL の制限このオプション (Windows のみ) を使うと PuTTY (や他の PuTTY ツール) は自身のプロセスを OS のアクセス制御でロックします。これが成功すると、PuTTY プロセスと同じユーザ ID で動作するマルウェアが、デバッガと同じインターフェイスを使って PuTTY に接続してメモリの機密情報を読み出したりネットワークセッションをハイジャックしたりする際の、余分な障害となります。
このオプションはデフォルトでは無効です。なぜなら Windows プログラム間でのこの形の相互作用は、例えばスクリーンリーダのようなアクセシビリティソフトウェアなどの、多くの正当な利用法があるためです。また、その種の攻撃に対してどんな場合でも十分なセキュリティは提供できません。なぜなら PuTTY は自身の ACL を起動した後にしかロックできず、マルウェアは起動とロックの間に侵入できるからです。つまり目に見える利便性を代償として期待よりも低いセキュリティが得られます。しかしながら、それでもやりたいならば、このオプションが利用できます。
PuTTY の -restrict-acl
オプションは、複製したセッションや新規セッションにも引き継がれます。 (しかし、PuTTY ツールをプロキシコマンドなどで明示的に起動するならば、-restrict-acl
をそれらにも必要に応じて自分で指定する必要があります。)
Pageant を -restrict-acl
オプションで起動して、PuTTY をそこからシステムトレイメニュー経由で起動した場合でも、Pageant は ACL を制限して PuTTY を起動しません。制限された ACL では PuTTY 側の機能が制限される (例えば、スクリーンリーダーの関与のために支援処理が必要になる) 一方で、Pageant の方がより重要な情報を持っています (そのため、より保護による利益が大きくなります)。よって、PuTTY ではなく Pageant を ACL を制限した状態で実行するのが合理的です。 -restrict-putty-acl
オプションを指定すると、Pageant から起動する PuTTY の ACL を制限できます。
-host-ca
: ホスト認証局の設定を起動する
PuTTY を -host-ca
オプションで起動すると、セッションを開始しません。代わりにホスト認証局の設定ダイアログ (section 4.21.4) を表示します。ダイアログを閉じると PuTTY は終了します。
-legacy-stdio-prompts
: 古いバージョンの PuTTY のように Windows コンソールプロンプトを処理するこのオプションは Windows の PSCP、PSFTP、Plink すべてで使用できます。 PuTTY スイートのツールで Windows コンソールで動作して SSH 接続をするものです。
これらのツールは Windows コンソールを使って様々な情報をプロンプトで尋ねます: ユーザ名、パスワード、ホスト鍵の質問等です。
現在のバージョンの PuTTY は、Windows コンソールに直接アクセスしてプロンプトが動作します。つまりツールの標準入出力をリダイレクトしても、プロンプトはコンソール依然としてに|e送られ (つまりリダイレクトした出力には送られず)、ユーザの応答はコンソールから読み込みます (つまりリダイレクトした入力から読みません)。
Windows コンソールから直接読み込む別の利点は、ツールが入力を Unicode で読み込める点です。つまり Windows の既定の文字セットに含まれない文字がユーザ名やパスワードに含まれても入力できます。
PuTTY ツールの 0.81 までは、プロンプトは通常の I/O ハンドルを使っていました。そのためプロンプトの出力とユーザの入力はリダイレクトできました。
新しい動作の方が有用のはずです。例えば、ローカルのコマンドが出力を生成して、それを Plink でリモートで動作するコマンドにパイプしたい場合、コマンドラインでこのように実行できます:
local_command | plink hostname remote_command
そしてリモートコマンドにパイプされるデータは Pink がパスワードを尋ねるかに関わらず同じです。古い動作では、パスワードを Plink への入力に含めなければならず、扱いにくかったはずです。
しかし、この古い動作用に複雑な作業の流れをカスタマイズしている人もいるでしょう。そのため必要があれば、コマンドラインに -legacy-stdio-prompts
を指定して古い動作に戻せます。
完全に前の動作に戻す場合は、次のセクションで説明する -legacy-charset-handling
も一緒に指定する必要があるかもしれません。 (このオプションを指定しない場合でも、-legacy-stdio-prompts
によるプロンプト処理は完全には Unicode 対応していません。
-legacy-charset-handling
: 古いバージョンの PuTTY のようにプロンプトの文字セットを処理するこのオプションはすべてのプラットフォームの PSCP、PSFTP、Plink すべてで使用できます。
現在のバージョンの PuTTY では、端末ウインドウで SSH のユーザ名やパスワードを求められた場合、入力した内容は Unicode で解釈され、サーバに送られます。これは端末が別の文字エンコーディングを使うように設定されていても同様です (section 4.10.1 参照)。同じように、Windows コンソールで動作するツールも入力を Unicode で解釈します。
この動作は SSH 標準に沿っています: ユーザ名などを、ユーザのネイティブな文字を扱える完全な文字セットを使って表せ、パスワードに入力する様々なキー入力が実際に明確に扱えます。
しかし、PuTTY ツールの 0.81 までの動作に慣れている場合、これによって今まで使っていたユーザ名やパスワードが期待通りに使えなくなるかもしれません。例えば、パスワードがアクセント付き文字を含む場合、この動作の変化によって同じキー入力が違う文字シーケンスとしてサーバに送られるようになるかもしれません。その結果サーバにアクセスできなくなりますが、実際のパスワードは表示されないため入力が違った文字になっていても見えません。
-legacy-charset-handling
オプションで PuTTY ツールの動作を前のように戻します: 入力した文字は PuTTY では“リモートの文字セット / Remote character set”として、Windows コンソールのツールでは、Windows のデフォルト文字セットとして、解釈されます。
(例えば、これでログインすれば次回からこのオプションを使う必要がなくなります。その場合は端末が UTF-8 を使うように設定してあるか確認してください。)
このマニュアルや PuTTY のツールに意見がある場合は、 Feedback page を参照してください。
翻訳についてはフィードバックから送信できます。
©1997-2025 Simon Tatham ©2015-2025 SATO Kentaro
[PuTTY custom build 0.83.ranvis-doc]