sshを/ scpの:コマンドラインshellselectのパスワード
![]() | なぜそれが間違っているまた、過去の頭にあなたの人生で少なくとも1回のsshクライアントにオプションとしてパスワードを変更することができますされます。 なぜOpenSSHは提供していない? |
いくつかの理由、これらの可能性があります
- しないことを確認パスワードをもし我々が通過するオプションは、種類を記録することがコマンドの間にBash_history〜を/認めるファイル、と私はあなたを保証することはln - s / dev / nullにの〜/。Bash_historyの状況ではない解決します。 私たちの知識がなくて、すべてのコマンドを記録したシェルがあります。 システムの多くの部分で私たちのパスワードの痕跡。
- これは必須ではありません、あなたは、リモートサーバーするたびにパスワードを入力せずに、キーだけ交換connect can。 あなたがホストをのauthorized_keys2公開鍵をファイルにする必要があります配置接続するために我々は。 鍵の生成は、あなたが1つ挿入するように指示されるパスフレーズを設定する場合。
- が接続をssh - agentをは、sshを開く我々は避けることに入力時にパスフレーズをすべての。 単に1つ挿入時の起動デーモンssh - agentを。
いくつかのケースでは便利です
それは必要なオプションをsshに、パスワードを変更するになる?
これは、リモート30イントラネット内のサーバー上で扱う際に役に立つことができます。 我々がアクセスするすべてのサーバーと鍵を交換することができない場合。 これはしばしば、企業内のサーバーのパスワードは、すべての従業員が知られている、発生し、しばしば非常に"パスワード"、"管理者"として恥ずかしいですは"foo"または"ルート"。
は、オプションので、スクリプトをシェルができるシンプルな使用または作成エイリアスを、なぜ、ケース、このことsshを渡すことにように見るようにshellselect ことが我々は、我々は管理を簡素化するサーバー。
使い方
まず、ソースは、OpenSSLのコードは、どのように、どこに、パスワードを格納するも、コマンドラインからの読み取りにそれらを変更すると、すべてのエラーを修正すると、すべてをコンパイルする仕組みを理解をダウンロードするには、動作確認が必要です。 恐れてはいけない、私はすでにこれを行っていると私はパッチを作成しただけで、ソースをダウンロードし、私のパッチを適用します。
私はあなたを伝える方法:
- ここに私のパッチをダウンロードする
- サイトに行くにhttp://www.openssh.com/ と opensshの源をダウンロードします。
- ダウンロードしたファイルを解凍する
- パッチ
cd openssh-XXX
patch -p2 < ../openssh-XXX-shellselect.patch - コンパイル
./configure
make - インストール
make install
指定する場合することができます私たちは、または実行するインストールせずに実行可能ファイルを変更する私たちが望むコピーできるだけでsshを維持するのバージョンを我々のシステム私たちはし-ときは、接頭辞を実行する設定-。
| パッチ | に対して有効 | ノート |
|---|---|---|
| のopenssh - 5.2p2 - shellselect.patch | のopenssh - 5.2p1 | 最新バージョンは、scpコマンドを変更するSFTPのと |
| のopenssh - 5.2p1 - shellselect.patch | のopenssh - 5.2p1 | 改善認証 |
| のopenssh - 4.9p1 - shellselect.patch | のopenssh - 4.9p1 | イニシャルリリース |
我々は終わった。 我々は、実行中のsshは、システムを起動した時表示されます。 確認
$ sshは - ヘルプ 使用方法:sshの[- 1246AaCfgKkMNnqsTtVvXxY] [- bのbind_address]は[- cをcipher_spec] [- Dの[のbind_address:]ポート] [電子escape_char] [- Fのconfigfileをの] [Identity_file - i]は[- Lの[のbind_address:]ポート:ホスト:hostportの] [login_nameを- lの]の[- mのmac_spec] [- Oは] [- oオプション] [- pのポート]をctl_cmd [- Rの[のbind_address:]ポート:ホスト:hostport] [- S】ctl_path [- Wはlocal_tun [:remote_tun] [ユーザ@]ホスト名[コマンド]
私たちは、sshのオプションを受け入れるが、
$。/ sshは - ヘルプ 使用方法:sshの[- 1246AaCfgKkMNnqsTtVvXxY] [- bのbind_address]は[- cをcipher_spec] [- Dの[のbind_address:]ポート] [電子escape_char] [- Fのconfigfileをの] [Identity_file - i]は[- Lの[のbind_address:]ポート:ホスト:hostportの] [login_nameを- lの]の[- mのmac_spec] [- Oは] [- oオプション] [- pのポート]をctl_cmd [- Rの[検bind_address:]ポート:ホスト:hostport] [- Sは] [- Wのパスワード] ctl_path [- Wはlocal_tun [:remote_tun] [ユーザ@]ホスト名[コマンド]
ご覧の通りことができますがwが[バージョン標準よりパスワード]をもっと 。 今では証明は、すべての作品:
./ssh -W password username@hostname
円錐場合ユーザ名の場合は、続いて私の手順は、ユーザーのホスト名のサーバーが正しくあなたがしてログインしてください。
Shellselect
shellselectはBashスクリプト我々sshのを悪用する能力をコマンドラインからパスワードを受け入れるよう、リモート接続を開くことです。
次のように表示されますウィンドウを投げる。

shellselect
ボタンをするに接続するサーバだけから1つを選択リスト[OK]を押します 。 シンプルない!
セットアップも簡単、単に次の情報をテキストファイルに記入:IPアドレス、ラベル、ユーザ、プロトコル(SSHまたはtelnetで接続)され、possiblyパスワード。 パスワードが指定されていない場合、通常のシステムは、sshを使用するとアクセスするための資格情報を求めることができると呼ばれます。 それ以外の場合我々はオプション- Wとsshを起動します。 このように
10.50.2.101 sshのルートルートのDC - TIM社 10.60.11.251 sshのルートTECTESTのroot_password capsula.noカプセルルートにssh - ip.org 92.243.11.13 sshの金属ダニー 10.50.5.100 sshのルートQuaggaTest Qpass 10.50.2.102ユーザtelnetシスコシスコ
Shellselect、スクリプト
#/ binには、/ bashの ProcessLine()( 行 ="$ @" $line | awk '{ print $1 }' ) ; IPアドレスは、= $()' の行を | awk'は(印刷$ 1)エコー ドル 。 $line | awk '{ print $2 }' ) ; HOSTは = $()' の行を | awk'は(印刷$ 2)エコー ドル 。 $line | awk '{ print $3 }' ) ; USERは = $()' の行を | awk'は(印刷$ 3)を エコー ドル 。 $line | awk '{ print $4 }' ) ; PROTOCOLは、= $()' の行を | awk'は(印刷$ 4)エコー ドル 。 $line | awk '{ print $5 }' ) ; PASSは = $()' の行を | awk'は(印刷$ 5)エコー ドル 。 "x $PASS " = "x" ] ; then $ 場合、["× PASSは "="x"を クリック ] パス ="X"は Fiの " ZENITY_OPTIONSは="$"は、プロトコル追い越しZENITY_OPTIONSを$ $ $ $ユーザ$ホストのIP ) ###メイン### ホーム ="〜" /bin/ssh" SSHを="$ HOME / binに/ sshを" /prog/shellselect/hosts" ファイル="は$ HOME /プログレッシブ/ shellselect / hostsファイル" ZENITY_GENERAL_OPTIONS =" -タイトルshellSelect -幅420" --list --print-column ALL --hide-column 1 --column pass --column IP --column Host --column User --column Protocol" ZENITY_OPTIONSは="$ ZENITY_GENERAL_OPTIONSは -一覧-印刷列のすべて-非表示の列1 -列を渡す- IPアドレスの列を-列ホスト- Userカラム-カラムプロトコル" "$1" ! = "" ] ; then 場合 、["$ 1"!= ''の] を ファイル ="$ 1" ! -f $FILE ] ; then 場合、[!- f $がファイル] を : does not exists" エコー "$は、ファイル:"存在しない 1番出口 ! -r $FILE ] ; then elifの[!- r $のファイル] を : can not read" エコー "$は、ファイル:"読み取ることができません 2番出口 Fiの Fiの #記事を読む$ファイル記述子ファイルを使用して 0 幹部 3 <&0 $FILE 幹部 0 <$ファイル COUNT_LINE = 0 line; do行中に 読んでください 。 行う ProcessLine $行 $COUNT_LINE + 1 ) ) COUNT_LINEは = $(($ 1))COUNT_LINE +を 実行 <& 3 幹部 0 <&3 #コマンドを確認zenityのの --height $((170 + ($COUNT_LINE - 1) * 26))" ZENITY_OPTIONS ="$ ZENITY_OPTIONS -高$((170 +($ COUNT_LINE - 1)* 26))" zenity $ZENITY_OPTIONS | tr '|' ' ' ` 商品$ =`zenityのの ZENITY_OPTIONS | トランジスタ '|'''` $ITEM | awk '{ print $1 }' ) パスワードは = $())$ 1'エコー $商品 | awk を '(印刷 $ITEM | awk '{ print $2 }' ) IPアドレスは、= $()$ 2)'エコー $'(印刷 商品 | awk を $ITEM | awk '{ print $3 }' ) HOSTは = $()$ 3)'エコー $'(印刷 商品 | awk を $ITEM | awk '{ print $4 }' ) USERは = $()$ 4)'エコー $'(印刷 商品 | の awk を $ITEM | awk '{ print $5 }' ) PROTOCOLは、= $())$ 5'エコー $商品 | awk を '(印刷 in $ 家庭で議定書 ssh2 ) )は、ssh | ssh2の " $PASSWORD " = "X" ] ; then $ 場合 、["パスワードは "="X"は その後 ] $IP $は、IPアドレスを$ sshを$ユーザ @ 他 $IP -W $PASSWORD $がPASSWORD $ sshを$ユーザ @ $ IPアドレスWの Fiの ;; telnetの) $ telnetのIPアドレス 23 ;; *) エコー "不明なプロトコル" ;; esac 出口 0
唯一のパラメータが設定されてホームは、SSHおよびFILE。 家は自分のホームディレクトリは、SSHは、SSH(パッチと1つの実行可能ファイルとして)がオプション- Wとファイルを受け入れるへのパスの設定ファイルの名前を挿入されている。















4つの応答は、"/ scpがsshを:パスワードをコマンドラインshellselectに"
ニコラスギリシャ - 2009年2月5日
グレート褒め
OpenSSHの、特にパッチ、
ニコラ
ジャンルカ - 2009年8月3日
こんにちは私は申し訳ありませんが、私はopensshのをインストールし、新しいオプションがWの間にあなたのパッチのパスワードを私にsshをあなたはとにかく呼び出しを使用する場合、それは、私のインストールの詳細は、間違っているか何を記述問題ではない動作しない、上記の。
フェザー - 2009年8月21日
パッチは、sshプロトコルのバージョン2を使用するサーバーで動作する、なぜここに、そのサーバーが接続を試みるerreseが動作しない唯一のバージョン1を受け入れます。 と- vオプションと検証を実行してみてください
表示される行
debug1:リモートプロトコルバージョン2.0
もう一つの理由は、そのサーバーではなく、認証"パスワード"を受け入れる"キーボードインタラクティブ"を使用している可能性がパスワードを求めることができるか。 現在の行を読んで見ることができます
debug1:継続認証することができます:のpublickey、パスワード、キーボードインタラクティブ
私は5.2p1書き込み別-のopensshパッチをの関数にことを確認sshのバージョンにこれらの2つのケースに適用されます。 その後、新しいソースは、sshをダウンロードし、このパッチを適用する:
http://www.piumalab.org/wp-content/uploads/openssh-5.2p1-shellselect.patch
コンパイル良い。
Maryuano - 2010年4月27日
グレート異なるマシン上で作業を自動化するbashスクリプトを作成するため。
グレートPiumaLab
返信コメントを残す