🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
SSH

SSH(Secure Shell)は、セキュアチャネルを通してデータを交換するためのネットワークプロトコルです。リモートサーバーへのコマンド実行やファイル転送を行う時に一般的に使用されます。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

Q&A

1回答

1271閲覧

LinuxのUbuntu環境でSSHの秘密鍵と公開鍵の設定がうまくできない

nguyenseiji

総合スコア156

SSH

SSH(Secure Shell)は、セキュアチャネルを通してデータを交換するためのネットワークプロトコルです。リモートサーバーへのコマンド実行やファイル転送を行う時に一般的に使用されます。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

0グッド

0クリップ

投稿2021/01/23 11:01

編集2021/01/23 11:03

毎度、お世話になっております
Ubuntu環境でSShの秘密鍵と公開鍵を設定したくて
参考サイトを30サイトぐらい調べても上手くできずお手上げ状態です..
小さい事でもよいのでミスや気になる点があればご指揮的ください

『構築手順』
①秘密鍵と公開鍵はサーバー側(リモート接続される側で作成しました)
コマンド->『ssh-keygen』->保存先は『/home/ユーザ名/.ssh/id_rsa』になります

②秘密鍵のパスフレーズを作成

③cat ~/ssh/id_rsa.pub | ssh ユーザ名@IPアドレス "cat >> ~/.ssh/authorized_keys"(こちらも接続される側でキーを作成しているので不要?)

④作成した『id_rsa』ファイルだけを使用している接続する側のPCのローカルにダウンロード(別の方法になりますがサーバ側でid_rsaファイルを
nanoで開いてコピーしてローカルで新規作成したテキストファイルに張り付ける方法もやりました)

⑤etc/ssh/sshd_configファイルからパスワードによるログインを無効に設定

⑥systemctl restart sshで再起動

『別方法で試したけど必要ないと感じた事』
参考サイトには
『ssh-copy-id』 コマンドを使用していたのですが接続される側でキーを作成しているので不要だと感じました

『質問したい事』
->サーバ側で作成した場合でも『cat ~/ssh/id_rsa.pub | ssh ユーザ名@IPアドレス "cat >> ~/.ssh/authorized_keys"』の部分は必要なのでしょうか

->VS Codeで接続できないのですが何かミスがある場合はご指揮的くださいm
https://qiita.com/nlog2n2/items/1d1358f6913249f3e186
上記のURLを参考にRemote sshはダウンロードして
Remote.SSH: Config Fileファイルも記載済みです

『VsCodeのConfig ファイルの中身』
Host IPアドレス
HostName IPアドレス
User ユーザー名
IdentityFile ‪Users/ユーザー名/Desktop/id_rsa(ダウンロードしたファイルのパス)

設定からVsCode側のConfigファイルのパスも通っています

朝から色々思考錯誤していますが正直何が間違えているのか分からずお手上げです。。
小さいミスとうありましたらご指揮的ください...

パスワードでのリモートアクセスはできたのでポートなどは通っていると思います

『環境』
さくらVPN
Ubuntu20.04

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

①秘密鍵と公開鍵はサーバー側(リモート接続される側で作成しました)

ここから間違えています(鍵は接続する側で作成します)が、致命的では無いです。
間違えた事によるリスクは、秘密鍵を(ネットワーク越しに)別のPCに移すという作業が必要なこと。そこは通り過ぎているので、これ以上リスクは無いと思います。

②秘密鍵のパスフレーズを作成

は1の作業時に行ったことですよね?

③cat ~/ssh/id_rsa.pub | ssh ユーザ名@IPアドレス "cat >> ~/.ssh/authorized_keys"(こちらも接続される側でキーを作成しているので不要?)

これが意味不明。このコマンドを実行したのはどっち?IPアドレスはどっちの?両方とも接続される側であれば良いですが。

正しくは、接続される側で、
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
ですね。
鍵を接続される側で作成するという変なことをしたので、手順の混乱があるのでしょう。
~/.ssh/authorized_keysへの追記は必要です。

④作成した『id_rsa』ファイルだけを使用している接続する側のPCのローカルにダウンロード

これはこれで正しいです。

⑤etc/ssh/sshd_configファイルからパスワードによるログインを無効に設定

/etc/ssh/sshd_configの間違いですね。
これは普通は鍵によるログインが成功してからやることですが、鍵によるログインが成功したなら、順序は違っても致命的では無いです。

⑥systemctl restart sshで再起動

sshdの間違いですね。

Windows10なら、標準でsshd.exeがあるはずなので、
コマンドプロンプトで、

CMD

1ssh -i id_rsaのフルパス -p ポート番号 ユーザ名@IPアドレス

を実行してみてください。これで通れば、鍵回りは大丈夫です。

投稿2021/01/23 11:43

otn

総合スコア85882

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

nguyenseiji

2021/01/23 13:13

ご連絡ありがとうございます ②秘密鍵のパスフレーズを作成は①の時に一緒に作成しました ③についてもどちらも接続される側になります ssh -i id_rsaのフルパス -p ポート番号 ユーザ名@IPアドレス で通らなかったのでUbuntuを再インストールして今度はWindows10上で鍵を作成してやってみます
otn

2021/01/23 14:55

エラーメッセージは?
nguyenseiji

2021/01/24 09:43 編集

お世話になっております 再度windows側で公開鍵と秘密鍵を作成したところ 何が起きたのかわからないぐらい簡単に構築成功しました! ありがとうございます 参考サイト 一点、気になるところがあるのですが サーバーにauthorized_keysを転送する際にscpコマンドを使用してしまったのですが あとからセキュリティー的に危険と分かりました まだ知名度の低いサイトですがscpで転送した場合は高確率でファイルの中身がだれかにばれているのでしょうか? 参考サイト https://www.youtube.com/watch?v=du-nWMCRkqE&t=224s
nguyenseiji

2021/01/24 09:42

サーバーを再構築するべきかそのままスルーでも大丈夫なのか不安です
otn

2021/01/24 09:48

公開鍵は、文字通り他人に知られてもいい鍵です。 > まだ知名度の低いサイトですがscpで転送した場合は高確率でファイルの中身がだけかにばれているのでしょうか? あなたをずっとマークしているクラッカーがいれば漏洩するでしょうね。 あなたをずっとマークしているクラッカーがいるのなら、他にもっと心配することはあります。
otn

2021/01/24 09:52

あと、質問文中のsshコマンドでポート番号を指定している気配が無いですが、sshdのポート番号をデフォルトの22のまま使ったら駄目ですよ。これは、あなたをマークしているクラッカーの有無に関係なく危険です。 接続元IPアドレスで制限しているとかなら良いですが。
nguyenseiji

2021/01/24 10:56 編集

ご連絡ありがとうございます 下記の参考サイトを参考に構築後すぐにポートを変更しましたがこれの事で問題ないでしょうか? https://www.ubuntu-perl-web.com/blog/20200715102902.html またその他にもセキュリティー面で最低限の事で良いので設定しておいた方が良い事などはありますでしょうか httpからhttpsへの変更は現在作業中
otn

2021/01/24 10:58

ああ、変更してたんですね。 質問文のコマンドに書いてなかったので、デフォルトのままかと思ってました。
nguyenseiji

2021/01/24 11:09

確かにscpで公開鍵をサーバーに送る時にポートの指定をしないでも送信に成功したのですが scpコマンドの場合は不要との事でしょうか? パスコードは聞かれました...
otn

2021/01/24 11:53

> scpコマンドの場合は不要との事でしょうか? そんなわけ無いでしょ。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問