公開鍵方式でリモートサーバーにsshでログインする場合、パスワードを求められる場合と求められない場合があります。

例えば、サーバーAとサーバーBがあって、
サーバーBのauthorized_keysにサーバーAの公開鍵を登録して、サーバーAからサーバーBにアクセした場合、パスワード入力なしでsshログイン出来ます。

しかしながら、サーバーBの秘密鍵をサーバーAの~/.sshの中において、サーバーAからサーバーBにアクセスした場合、パスワード入力が求められました。

公開鍵方式でssh接続する場合、どういった時に求めら、どういった時に求められないのでしょうか?

ちなみに、サーバAとサーバーBで作った鍵の違いはrsaかdsaの違いとファイル名称の違いくらいです。

もしご存知の方がいましたら教えていただけると助かります。

宜しくお願いします。

このQ&Aに関連する最新のQ&A

A 回答 (2件)

サーバA、サーバBと言っているから判り難くなっているような?



>①サーバーAからサーバーBに接続するパターン
>①の場合は、サーバーBにサーバーAの公開鍵を設置

クライアント(サーバA)からサーバ(サーバB)に接続します。
サーバにはクライアントで作成した公開鍵を設定した。

>②サーバーBからサーバーAに接続するパターン
>②の場合は、サーバーAにサーバーBの秘密鍵を設置

クライアント(サーバB)からサーバ(サーバA)に接続します。
サーバで作成した秘密鍵をクライアントにコピーしました。
では、サーバAへの公開鍵の登録は?


ちなみに、公開鍵と秘密鍵のペアの作成はクライアント側でやった方がいいです。
# 必要なクライアントに秘密鍵をコピーした後でサーバに残っている秘密鍵を削除するのならば問題はありませんが…。
# 乗っ取られた後でファイル復元されなければ…ですけど。

>後者です。
>なので公開鍵認証のはずです。

パスフレーズとパスワードに別々のものを設定していれば確定でしょうね。
もっとも、
>①サーバーAからサーバーBに接続するパターン
>①の場合は、サーバーBにサーバーAの公開鍵を設置
の時にも秘密鍵のパスフレーズ入力があったハズですが…。

ただし、keychainとssh-agentがサーバAで動作していたとしたら
起動時(ログイン時?)の最初の1回にパスフレーズ入力するだけで記憶してくれていることになりますが。

>権限の関係で、それらのログを確認することができないんですよね、、、

sshコマンド実行時に-vオプション付けることでなんか見られる…かも知れません。(未検証)
    • good
    • 0
この回答へのお礼

ご回答、ありがとうございます。
------------------------------------------------
> では、サーバAへの公開鍵の登録は?

→こちら行っております。

------------------------------------------------
> もっとも、
> >①サーバーAからサーバーBに接続するパターン
> >①の場合は、サーバーBにサーバーAの公開鍵を設置
> の時にも秘密鍵のパスフレーズ入力があったハズですが…。

→それがなかったんですよね、、、不思議です、、、

------------------------------------------------
> ただし、keychainとssh-agentがサーバAで動作していたとしたら
> 起動時(ログイン時?)の最初の1回にパスフレーズ入力するだけで記憶してくれていることになりますが。

→こちら、今度、確認してみますが、①のケースだと1回もパスワードを入力しなくてもろぐいんできたんですよね、、、
------------------------------------------------

お礼日時:2016/02/11 11:13

>しかしながら、サーバーBの秘密鍵をサーバーAの~/.sshの中において、サーバーAからサーバーBにアクセスした場合、パスワード入力が求められました。



これは公開鍵認証になっていないのでは?
接続先のサーバに設定するのは「公開鍵」の方ですよ?
秘密鍵は手元(クライアント)側です。

あと…認証に使用したのは対象のサーバのアカウントに設定したパスワードですか?
それとも使用した秘密鍵のパスフレーズですか?
前者ならパスワード認証されたことになります。後者のみなら公開鍵認証ですね。
まぁ…いずれにしても接続先のサーバのログにどの認証方式だったのか記録されていると思いますが。
CentOS 6.x/7.xの/var/log/secureで……
Feb 9 22:59:33 localhost1 sshd[6156]: Accepted publickey for User from 192.168.1.4 port 59520 ssh2
Feb 9 22:58:27 localhost2 sshd[1453]: Accepted password for User from 192.168.1.4 port 59500 ssh2
前者が公開鍵認証、後者がパスワード認証です。
# ホスト名とユーザ名は書き換えてますけど。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
下記、リプライいたします。
--------------------------------------------------
>これは公開鍵認証になっていないのでは?
>接続先のサーバに設定するのは「公開鍵」の方ですよ?
>秘密鍵は手元(クライアント)側です。

今回、サーバーAとサーバーBがあり、
①サーバーAからサーバーBに接続するパターン
②サーバーBからサーバーAに接続するパターン
があります。

そして、
①の場合は、サーバーBにサーバーAの公開鍵を設置
②の場合は、サーバーAにサーバーBの秘密鍵を設置
しております。

そのため、常に接続元に秘密鍵があり接続先に公開鍵があることになります。

この関係性があるにもかかわらずパスワードが求められてしまっているのが、よくわからないのです、、、

>あと…認証に使用したのは対象のサーバのアカウントに設定したパスワードですか?
>それとも使用した秘密鍵のパスフレーズですか?
>前者ならパスワード認証されたことになります。後者のみなら公開鍵認証ですね。

後者です。
なので公開鍵認証のはずです。

>まぁ…いずれにしても接続先のサーバのログにどの認証方式だったのか記録されていると思いますが。

権限の関係で、それらのログを確認することができないんですよね、、、
--------------------------------------------------

もし、上記の内容も踏まえて、さらに伝えられることがありましたら、宜しくお願いします。

お礼日時:2016/02/10 08:33

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q起動時ログインパスワード"なし"から"あり"に設定したい

vista使用しています。
PC起動時にアカウントからログインする際に、パスワードを求められますが、
今までパスワードは設定しておらず、enterでログインしていました。
今後、パスワードの設定が必要になったので設定しようと思い、
ctrl+alt+deleteでパスワードの設定画面に行き、
古いパスワードを入れるところに何も入れないで、新しいパスワードを入れたところ、エラーになってしまいました。
古いパスワードのところに何かしら入力しないとダメなのでしょうか?

それとも、パスワードなしでログインしていたのに今更パスワードは設定できないのでしょうか?
質問の仕方が解りにくいと思いますが、vista初心者のためよろしくお願いいたします。

Aベストアンサー

NO1追加
Vistaでログインパスワードを設定すると、忘れた場合にXPと違い、セーフモードのAdministratorユーザーからのパスワード解除は不可能ですから、ログオンパスワードを設定する際は「パスワードリセットディスク」をお忘れなく作成しておいて下さい。

「コントロールパネル」「ユーザーアカウントと家族のための安全設定」「ユーザーアカウント」左側「パスワードリセットディスクの作成」「パスワードディスクの作成ウィザードの開始」を起動
パスワードを入力してディスクを作成

「ログインパスワードの有効期限を伸ばす」
ログインパスワードはデフォルトで42日間の有効期限が設定されています。
http://vista.papepopc.com/2007/05/post_44.html

参考URL:http://pc.nikkeibp.co.jp/article/NPC/20071022/284896/

QSSHにログインする際、公開暗号鍵方式にするにはどうしたらよいでしょうか

わたしはSSHクライアントにPuTTYを使っています。
よろしくお願いします。

Aベストアンサー

こんばんわぁ、Blackwinglsです。


> Server refused our key

とのことですが、~/.ssh/authority_keys のアクセス権は600に設定されてますか?
No5を見直していたら私の方で間違っていました。(^-^;
user@debian:~/ chmod 600 /root/.ssh/authorized_keys //パーミッション設定

user@debian:~/ chmod 600 authorized_keys //パーミッション設定
が正解です。
あと ~/.ssh のアクセス権はどうなっていますでしょうか?
自動生成ならタブン問題ないと思いますが、ご自分で作ったならアクセス権の確認。
700になっていないといけませんよ。

ここまで確認しても上手くいかない時は、PuTTYgen をもう一度やってみる。
generated key が、1024bit 以外も試してみる。例えば、768bit とか・・

それでもダメな時は、rootアカウントが使えるんであれば、テストユーザーを作成してNo5、No6の手順でもう一度最初からやってみる。

思いつくのはこんなところでしょうか・・・・・

タブン、アクセス権あたりが怪しいとは思うのですが、ダメな時はディストリビューション名、OpenSSHのバージョン、Puttyのバージョン、パッチ状況、PuTTYgen のバージョン等を補足願います。


ではでは~☆ミ


ps 上手くいったら、パスワードログインを無効に設定しないと意味なしです(^-^;

こんばんわぁ、Blackwinglsです。


> Server refused our key

とのことですが、~/.ssh/authority_keys のアクセス権は600に設定されてますか?
No5を見直していたら私の方で間違っていました。(^-^;
user@debian:~/ chmod 600 /root/.ssh/authorized_keys //パーミッション設定

user@debian:~/ chmod 600 authorized_keys //パーミッション設定
が正解です。
あと ~/.ssh のアクセス権はどうなっていますでしょうか?
自動生成ならタブン問題ないと思いますが、ご自分で作ったならアクセス権の...続きを読む

Q共有しているフォルダーへのパスワード設定について

Win2000で、共有したいフォルダーを設定したところ。
Win98の他のパソコンから、win2000内の共有したフォルダーを見に行くと ネットワークパスワードを聞いて来ます。Win98では 共有の設定のところでフルアクセルの際パスワードによる区分を設定し、パスワードを設定できるのですが。
Win2000ではどのようにしてパスワードの設定もしくは、パスワードなしでの
フォルダーへのアクセルを可能にできるのですか。Win2000にバージョンアップ
したばかりです、申し訳ございませんが教えてください。

Aベストアンサー

ユーザーが設定されている場合は
コンピュータの管理→ローカルユーザーとグループ→ユーザー→右側のユーザー名を右クリック→パスワードの設定
ユーザーが設定されていない場合は
コンピュータの管理→ローカルユーザーとグループ→ユーザー→右側のGuestを右クリック→パスワードの設定
で設定出来ると思いますが…

QSSHのパスワード無し認証(公開鍵暗号方式)

過去ログに似た質問がいくつかあり、それらを参考にしましたが、何故か私の環境では上手く行かないので、何が原因なのか、どうすればよいのか、どなたか教えて頂けると嬉しく思います。

■やりたいこと
・SSHでパスワード無しログイン

■環境条件
・ローカルマシン(接続元)
  VineLinux 3.1
・ホストマシン(接続先)
  VineLinux 3.1
・両方のマシンに同じユーザ(hikaly)があり、ログインパスワードは同じものになっている。

■手順

ローカルマシンにhikalyでログインし、
$ ssh-keygen -t rsa -N ""
でパスフレーズ無しの鍵を作成する。

/home/hikaly/.ssh/id_rsa.pub というファイルを、ホストの /home/hikaly/.ssh/ にコピー。この際、WinSCP3を使って、ローカル→作業用Windowsマシン→ホスト とコピーを行いました。

ホストの /home/hikaly/.ssh/ には authorized_keys が存在しなかったので、コピーした rsa_id.pub を authorized_keys に改名。

ホスト側で root になって sshd_config を編集。
RSAAuthenticationを「yes」にして保存。sshdを再起動させました。

■結果

これでローカル側からホスト側にパスワード無しで接続できるはずだと思いますが、
hikaly@hostmachine's password:
とパスワードを尋ねられてしまいます。

いろいろとググッて調べてみたところ、「接続先(ホスト側)でssh-keygenしてできたrsa_id.pubを接続元(ローカル側)にコピーせよ。」と読める資料を見つけましたが、多くのものは「接続元でssh-keygenして接続先にコピーせよ。」と書かれています。ワケ分からなくなってきました。(;´ρ`)

私の質問もややこしくてワケ分からなくてすいません。

過去ログに似た質問がいくつかあり、それらを参考にしましたが、何故か私の環境では上手く行かないので、何が原因なのか、どうすればよいのか、どなたか教えて頂けると嬉しく思います。

■やりたいこと
・SSHでパスワード無しログイン

■環境条件
・ローカルマシン(接続元)
  VineLinux 3.1
・ホストマシン(接続先)
  VineLinux 3.1
・両方のマシンに同じユーザ(hikaly)があり、ログインパスワードは同じものになっている。

■手順

ローカルマシンにhikalyでログインし、
$ ssh-keygen ...続きを読む

Aベストアンサー

リモートのsshdを止めたくないんですね。
オーケー、そんなときは違うポートを使ってテストしよう。リモートで、以下のコマンドでデバッグモードのsshdを立ち上げる。
その前に、使われてないポートのチェックだ。
/etc/servicesによれば 122 は空いてるようだが、netstatを使って確認してみる。
$ netstat -ln
LISTEN されてなければOK。

sshd をデバッグモードで起動する。
# /usr/sbin/sshd -D -e -d -d -d -p 122 -f /etc/ssh/sshd_config

netstat で見てみると 122 がLISTEN されてる。
こいつがデバッグモードのsshdだ。

さて、ローカルからリモートへsshしてみよう。

$ ssh -p 122 user@remotehost

これでばっちりログが取れるので、問題解決まであと少しだっ。

#8 さんが整理してくれたおかげで、やっと問題が理解できました。thx

Qvistaのパスワード設定

こんばんは

vistaのパスワード設定について教えてください
コントロールパネル

「ユーザーアカウント」

“変更するアカウント”を選ぶ所まではわかりました

アカウントを選び、パスワード設定画面になりますが
調べてみたら「パスワードを作成する」を選ぶ事が出来ません
新しいパスワードは設定していないため、新しいパスワードは
空欄で変更を押しますが変更されないです

パスワード設定するにはどうしたらいいでしょうか
申し訳ないですがご教授願います

Aベストアンサー

>調べてみたら「パスワードを作成する」を選ぶ事が出来ません
パスワードを設定していないユーザーIDであれば「パスワードの作成」を選択できます。
既にパスワードが設定されている場合は「パスワードの変更」と「パスワードの削除」が選べます。

>新しいパスワードは空欄で変更を押しますが変更されないです
「パスワードの変更」で新しいパスワードの欄に未入力で「変更」ボタンを押すと「パスワードの削除」と同じ動作になります。

自分でやりたいことを正しく表現できるようにして頂かないと今の状態が伝わりません。
従って、回答も目的にかなっているか否かが分かりません。
この回答で目的が達成できなければあなたが実行したこととその結果を補足して下さい。

Qsshの鍵方式ログイン

sshで【ssh-keygen -t rsa】で鍵を作成し、pubキーをログイン先のサーバーへ配置しました。この方式でrootでは難なくログインできるのですが、一般ユーザーだと【Permission denied (publickey,gssapi-with-mic).】のようにエラーが出てログインできません。なぜでしょうか?
ご存知の方、宜しくお願いします。

Aベストアンサー

>Permission denied

ファイルかディレクトリのパーミッションの問題でしょう。
オーナーユーザー以外がアクセスできる状態になっている。
とか、rootユーザーで書き込んじゃって所有者がrootになっている。
などなど……

該当ユーザーのホームディレクトリで、
ls -l .ssh
とやってみたらどうなりますか?

Qオグイン時のパスワードを設定したい。

会社のパソコンですが、私のIDでドメイン参加しています。
で、パスワード自体設定されていないので、
パスワードを設定しようと、
コントロールパネルのユーザーとパスワードからパスワードを変更しようとしました。
ところが同じWIN2000を使用している自宅のPCでは
「このユーザー名を使用するには、ユーザー名とパスワードを入力する必要があります」
というメッセージがでるのに、会社のPCではでません。
それからパスワードを設定しようとしても、
パスワードの設定自体ができません。

どうしてでしょうか?
御教授の程宜しくお願いします。

Aベストアンサー

会社のパソコンという事なので、おそらくあなた自身にAdministrstorの権限が与えられていないと思います、ですからパスワードの設定や変更は出来ない、ということではないでしょうか。セキュリティーの面からもシステム管理者の方にパスワードを設定してもらったほうがよろしいかと思います。

Qsshでリモートログインした際の日本語入力

失礼します。

sshでリモートログインした際に、geditを起動したところ日本語入力ができないという問題にあたったのですが、どうすればよいか教えて頂けないでしょうか?
サーバー・クライアントともにUbuntu10.04になります。

宜しくお願い致します。

Aベストアンサー

あ、ほんとだ(笑)

で、sshを介したGUIソフトの起動のことをX転送と呼びます。
X転送についてググって見ると、こういう記事が見つかります。

http://wps.watanet.mydns.jp/2009/03/06/ssh%E3%81%AEx%E8%BB%A2%E9%80%81%E5%88%A9%E7%94%A8%E6%99%82%E3%81%AB%E3%80%81%E6%97%A5%E6%9C%AC%E8%AA%9Eime%E3%81%8C%E6%9C%89%E5%8A%B9%E3%81%AB%E3%81%AA%E3%82%89%E3%81%AA%E3%81%84%E4%BB%B6

ただ、この記事当時はSCIMを介して日本語入力をしていましたが
10.04LTSでは、これがiBusに入れ替えられています。

ですから、まず
env | grep XMODIFIERS
でローカルの設定を確認します。うちの10.04LTS環境では、デフォのはずですが
XMODIFIERS=@im=ibus
と設定されていて…sshで入った先は同じ10.04LTSですが、設定がありません。
(たぶんsshから入った場合の環境設定自体がデフォで簡易なものになっているんだと思います)

まぁ、そういうわけで、前述サイトを参考に

export XMODIFIERS=@im=ibus
すると、日本語変換ができるようになります。
IBUSとかiBusとか表記がローカルリモートで食い違うとダメみたいです。


sshログイン時の初期設定の変更方法は知りません(ヲイ)

リモート側の~/.bashrcに記述すると良いみたいですが…
このファイルの全体を把握していないので
どの位置で書いておけば適切か?とかあるいは気にすること無いのか?
さっぱりわかりません。

まぁ、自分の録画サーバーの.bashrcは書き換えましたけどね。

あ、ほんとだ(笑)

で、sshを介したGUIソフトの起動のことをX転送と呼びます。
X転送についてググって見ると、こういう記事が見つかります。

http://wps.watanet.mydns.jp/2009/03/06/ssh%E3%81%AEx%E8%BB%A2%E9%80%81%E5%88%A9%E7%94%A8%E6%99%82%E3%81%AB%E3%80%81%E6%97%A5%E6%9C%AC%E8%AA%9Eime%E3%81%8C%E6%9C%89%E5%8A%B9%E3%81%AB%E3%81%AA%E3%82%89%E3%81%AA%E3%81%84%E4%BB%B6

ただ、この記事当時はSCIMを介して日本語入力をしていましたが
10.04LTSでは、これがiBusに入れ替えられています。

ですか...続きを読む

Qパワーオンパスワードが設定不可PCへのパスワード設定方法

BIOSのパスワードを設定しましたがBIOS設定画面に入る時だけパスワードを求めるものでした。パワーオン時にパスワードを求めてくるような設定が出来るソフト等の方法があれば教えて下さい。

Aベストアンサー

質問者さんのご要望とは若干異なるかもしれませんが、
Windowsの起動ドライブを暗号化し、
電源ONによるWindows起動開始時(Bios起動直後)に
パスワードを求めてくるようなことができるソフトはあります。

参考URL:http://www.forest.impress.co.jp/article/2008/02/08/truecrypt5.html

QSSHでリモートログインした時に、GUIアプリを使いたい

SSHでリモートログインした時に、GUIアプリ(ブラウザ等)を使いたいのですが、何か手段はあるでしょうか?

Aベストアンサー

ご質問は「LANの内部ではなく、外出先や遠隔地からサーバをGUIでリモート操作したい」と読み取りました。

このような場合、セキュリティの面で余計なポートは開きたくないので、質問者さんが仰っているようにSSH接続が妥当なところだと思います。
それと、GUIでのリモート操作は VNC が一般的と思われますので、以下はSSH+VNCのお話をします。

SSH接続は22番ポートを利用して通信を行いますが、VNC接続は5900番以降のポートが使われます。
22番しかポートが空いてない状態で VNC-SERVER を起動しても、当然ながらGUI操作を行うことが出来ません。
このような場合は、SSHクライアントのポート転送という機能を使います。
要するに、22番のSSHトンネルを使って22番以外のポートに接続するという手法です。
この手法ですと、ポート転送後の通信がSSHトンネルを通るため、暗号化されていますので安心です。

次のページに、この環境を構築する方法が書かれていますので、参照してみてください。
  http://www.obenri.com/_vnc/vnc_ssh.html

ご質問は「LANの内部ではなく、外出先や遠隔地からサーバをGUIでリモート操作したい」と読み取りました。

このような場合、セキュリティの面で余計なポートは開きたくないので、質問者さんが仰っているようにSSH接続が妥当なところだと思います。
それと、GUIでのリモート操作は VNC が一般的と思われますので、以下はSSH+VNCのお話をします。

SSH接続は22番ポートを利用して通信を行いますが、VNC接続は5900番以降のポートが使われます。
22番しかポートが空いてない状態で VNC-SERVER を起動しても、当...続きを読む


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング