みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

クライアントPCの端末からからssh 接続

クライアントPCの端末からからssh 接続をするためには?


○質問の主旨

WindowsのTeraTermをターミナルソフトとして、
Linuxのサーバー上にある
SSHサーバーに接続したいと考えています。

そのときの接続コマンドは、以下の通りです。

$ ssh -l user -p 22 -i home/user/.ssh/authorized_keys server

user→一般ユーザーの名前
22→ポート番号
home/user/.ssh/authorized_keys→公開鍵のパス名
server→SSHサーバーのホスト名


参考サイト
http://dogmap.jp/2011/10/27/ssh_config/

しかし、上記のコマンドで接続しようとすると
下記のように叱られて、接続することができません。

Warning: Identity file home/user/.ssh/authorized_keys not accessible: No such file or directory.
ssh_exchange_identification: Connection closed by remote host

どのように接続するためにはどのように対処すれば
よろしいでしょうか?

ご存知の方がいらっしゃいましたら、
ご教示願います。

○質問の補足

現在、SSHサーバーへのアクセス制御は以下のように設定しています。

#vi /etc/hosts.deny
sshd:all

#vi /etc/hosts/hosts.allow
sshd:(サーバーのIPアドレスのみ記述)

#vi /etc/ssh/sshd_config

MaxStartups 10
(#MaxStartupsとコメントにされていたので#を削除)

参考サイト
http://wsjp.blogspot.jp/2012/08/sshexchangeidentification-connection.html

また一般ユーザーのホームディレクトリの下に
.sshと言う名前のフォルダを使って、
authorized_keysという名前のファイルに
公開鍵で使用する文字列を書き込んでいます。

○環境

クライアントPC:windows8.1
ターミナルソフト:TeraTerm Pro
サーバー:Linux(CentOS6.0)

投稿日時 - 2014-03-09 23:40:08

QNo.8507262

困ってます

質問者が選んだベストアンサー

普通に考えてNo such file or directory.です。
ls home/user/.ssh/authorized_keys
これで、ファイルが表示されないなら、パス指定が間違っています。

まぁ、普通は、Linux系OSだと個人のファイルを指定するなら
自分のホームディレクトリーは~/で記述します。

Windowsの場合は、~/が使えないと思いますが
それ以前に、ファイルシステムの管理概念が違うので
WindowsとLinuxでは、パス指定の書式は共通では無いことが多いはずです。
オプションについても、異なるssh実装では、異なる場合があり、要注意です。


TeraTermでの接続方法を参考にするのであれば
それはTeraTermでしか動作検証できません。

そして、その問題のほとんどはLinux系OSの問題というよりも
Windows用ソフトの、特有の問題と考えるべきです。

投稿日時 - 2014-03-10 14:27:11

お礼

vaiduryaさま
コメントありがとうございます。

[user@server ~]の状態で、

ls home/user/.ssh/authorized_keys

ではcannot access
そのようなファイルやディ レクトリはありません
と返されますが、

ls ~/.ssh/authorized_keys

では、
home/user/.ssh/authorized_keysと
返されます。

cat ~/.ssh/authorized_keys

のコマンドを打つと、
公開鍵の文字列が閲覧できます。

>自分のホームディレクトリーは~/で記述します。

恐れ入ります。
そのことをすっかり忘れていました。
教えていただいて助かります。

投稿日時 - 2014-03-11 01:09:18

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(6)

ANo.6

>ls ~/.ssh/authorized_keys
>
>では、
>home/user/.ssh/authorized_keysと
>返されます。

書き間違えなのかもしれませんが、それはないかと。
どこがおかしいのかは気づいてください。

>#vi /etc/hosts.allow
>sshd:(クライアントPCのIPアドレスのみ記述)

最終目標であるクライアントから接続するときは、それであってますが
今回やってるサーバー上からの接続だと、それではつながりませんよ。
サーバー上から接続するときの設定だろうと指摘してなかったんですけど・・・

投稿日時 - 2014-03-11 07:21:18

お礼

wormholeさん
コメントありがとうございます。


>どこがおかしいのかは気づいてください。

すぐにコレといった心当たりは
ありませんが、ちょっと考えてみます。

>今回やってるサーバー上からの接続だと、それではつながりませんよ。

ご指摘ありがとうございます、
サーバー上からの接続のときは、
別途対策を考えます。

投稿日時 - 2014-03-11 10:08:03

ANo.5

>#vi /etc/hosts.deny
>sshd:all

>#vi /etc/hosts/hosts.allow
>sshd:(サーバーのIPアドレスのみ記述)

門外漢がレス返すのも何ですが、これだと、「サーバ」からの操作以外蹴られやしませんか?

この「サーバ」が、これから接続しようとしているCentOSホストの事なら、全蹴り設定で、「クライアント」の接続まで蹴ってたら、認証以前の問題では?

レンジを絞るなり、アドレスを限定するなりして、アクセスを「許可」してみては?

参考URL:http://web.mit.edu/rhel-doc/4/RH-DOCS/rhel-rg-ja-4/s1-tcpwrappers-access.html

投稿日時 - 2014-03-10 22:33:51

お礼

A1200hd40さま
コメントありがとうございます。

>#vi /etc/hosts/hosts.allow
>sshd:(サーバーのIPアドレスのみ記述)

恐れ入ります。
私が質問した記述が間違ってました。
正しくは、

#vi /etc/hosts.allow
sshd:(クライアントPCのIPアドレスのみ記述)

でした。
ご指摘助かります。

投稿日時 - 2014-03-11 01:16:58

ANo.4

他の方がもう書いてるので書く必要もなさそうですけど。

>「ファイルの不一致。
>authorized_keysというファイルにはアクセスできない」
>ということだと思います。

「ファイルの不一致」はどこから出てきたんでしょうか。

>>カレントディレクトリ基準で、home/user/.ssh/authorized_keys ありましたか?
>
>はい。あります。
>ただし以下のコマンドで
> すでにパーミッションを変えています。
>$chmod 600 .ssh/authorized_keys
>$chmod 700 .ssh

「あります」といってるのはカレントディレクトリから見て

.ssh/authorized_keys

ではないのですか?

.ssh/authorized_keys
home/user/.ssh/authorized_keys

の2つを見て同じに見えますか?

投稿日時 - 2014-03-10 21:02:46

お礼

wormholeさま
コメントありがとうございます。

>.ssh/authorized_keys
home/user/.ssh/authorized_keys

の2つを見て同じに見えますか?

恐れ入ります。違いますね…。

相対パス
カレンディレクトリ
~/

のそれぞれの意味をもう一度
おさらいしてみます。

投稿日時 - 2014-03-11 09:54:38

ANo.2

Wr5

>「ファイルの不一致。
>authorized_keysというファイルにはアクセスできない」
>ということだと思います。

ファイル、またはディレクトリがないからそんなファイルにはアクセスできない。
って感じの意味ですかね。
# アクセス権(パーミッション)の場合はまた別のエラーメッセージになりますし。

>>その際のそれを実行したユーザーとカレントディレクトリはどうったのでしょうか?
>一般ユーザーでカレントディレクトリは
>一般ユーザーのホームディレクトリでした。
>(home/user)

相対パスの記述なんですが…
pwdコマンド実行してみました?

「/home/user」の間違いだったとして……。

>>カレントディレクトリ基準で、home/user/.ssh/authorized_keys ありましたか?
>はい。あります。

ということは、
/home/user/home/user/.ssh/authorized_keys
が存在するという認識で合っていますか?
# 「カレントディレクトリ基準で」と書かれていますけど。
# 相対パス指定になるので「/home/user/.ssh/authorized_keys」を指定していませんよ。
# カレントディレクトリが/だった場合を除いて。


とりあえず、現状ではWindows8.1とかTeraTermとか関係ない…ですよね。

投稿日時 - 2014-03-10 14:19:12

お礼

Wr5さま
コメントありがとうございます。

>ということは、
/home/user/home/user/.ssh/authorized_keys
が存在するという認識で合っていますか?

すいません。
合ってませんでした。

/home/user/home/user/という、
ディレクトリ構造は存在してません。

相対パス
カレントディレクトリ

という概念をもう一度おさらいしてみます。

投稿日時 - 2014-03-11 00:59:20

ANo.1

Windows上のTeraTermをターミナルソフトとしてというのは最終的にはそうする事が目標で、

>$ ssh -l user -p 22 -i home/user/.ssh/authorized_keys server

上記コマンドは、試しにLinuxのサーバーで行ったという事でいいんでしょうか。

その際のそれを実行したユーザーとカレントディレクトリはどうったのでしょうか?

>Warning: Identity file home/user/.ssh/authorized_keys not accessible: No such file or directory.

上記、警告の意味は理解されていますか?
カレントディレクトリ基準で、home/user/.ssh/authorized_keys ありましたか?

投稿日時 - 2014-03-10 00:35:08

お礼

wormholeさま
コメントありがとうございます。

>$ ssh -l user -p 22 -i home/user/.ssh/authorized_keys server

上記コマンドは、試しにLinuxのサーバーで行ったという事でいいんでしょうか。

ご指摘の通りです。
あえてこのコマンドでSSHサーバーに接続するのが
目的で行っています。

>その際のそれを実行したユーザーとカレントディレクトリはどうったのでしょうか?

一般ユーザーでカレントディレクトリは
一般ユーザーのホームディレクトリでした。
(home/user)

>Warning: Identity file home/user/.ssh/authorized_keys not accessible: No such file or directory.

上記、警告の意味は理解されていますか?

「ファイルの不一致。
authorized_keysというファイルにはアクセスできない」
ということだと思います。

>カレントディレクトリ基準で、home/user/.ssh/authorized_keys ありましたか?

はい。あります。
ただし以下のコマンドで
すでにパーミッションを変えています。
$chmod 600 .ssh/authorized_keys
$chmod 700 .ssh

投稿日時 - 2014-03-10 11:38:55

あなたにオススメの質問