Windows 10 SSHキー


112

Windows 10をインストールした後、SSHキーを取得して実行するのに非常に苦労しています。通常の方法は、SSHキーを作成し、.sshの下でユーザーのアカウントに投げます。このフォルダーはWindows 10では使用できないようです。

他の誰かがこれに遭遇しましたか?異なるリポジトリ用に3つのSSHキーが必要ですが、これは本当に私を妨げています。


2
Windows 10はドットフォルダーを隠していますか?
Leland Barton

いいえ、それも私が最初に考えていたものですが、インストール後にいくつか追加されました。
Rudenate3 2015

2
質問をスーパーユーザーに移動してください。それはですオフトピックこちら。
Martin Prikryl、2015

3
@MartinPrikryl Linuxでのコーディング、Githubの使用などの多くにはsshキーと.sshキーが含まれるため、Stackoverflowについては非常に話題になっています。
haziz 2016

2
私はマーティンに同意します。プログラミングの質問は、プログラムの作成に関する質問であり、プログラマーが尋ねる質問ではありません。
ベーコンビット

回答:


130
  1. Windowsのコマンドラインを開きます(検索ボックスに「cmd」と入力してEnterキーを押します)。
  2. デフォルトではホームフォルダーになるためcd、別のフォルダーに移動する必要はありません。
  3. タイプ ssh-keygen
  4. 指示に従ってください、あなたは行ってもいいです
  5. sshキーは、選択したディレクトリに保存する必要があります。デフォルトは次のとおりです。 /c/Users/YourUserName/.ssh/id_rsa.pub

ps:gitをbash統合でインストールした場合(私のように)、最初のステップで「cmd」ではなく「Git Bash」を開きます。


36
これは機能しないことを除いて見栄えが良いです。コマンドはありませんssh-keygen
robertotomás2016年

10
何らかの理由で、ssh-keygenコマンドをcmd-shellではなくgit-bashシェルで実行する必要がありました。
Olian04

6
そのため、Git Bash sheelまたはgit cmdを使用できます。Windowscmdは使用できません。
Pavan T 2017

6
2018年12月の時点で、それは私のために10勝で、箱から出して働いていた
ウルス

1
@Suncatcherはい。Github、DigitalOceanなどにログインするには、同じフォルダーの「id_rsa.pub」にある公開鍵が必要です。メモ帳などのテキストエディターで開き、SSHキーを追加する必要がある場所にコピーして貼り付けます。
グース

57

2019-04-07更新:本日、新しいバージョンのWindows 10(ビルド1809、「2018年10月の更新」)でテストしました。すでにインストールされているため、オープンSSHクライアントだけがベータ版ではなくなりました。したがって、キーを作成し、putty(pagent)の代わりにオープンSSHを使用するようにクライアントを設定するだけです。

  1. コマンドプロンプトを開く(cmd)
  2. Enterキーssh-keygenを押してEnter キーを押します
  3. すべての設定でEnterキーを押します。これでキーはc:\ Users \ .ssh \ id_rsa.pubに保存されます
  4. gitクライアントを開いて、open SSHを使用するように設定します

私はGit ExtensionsとSource Treeでテストしましたが、GitHubの個人用リポジトリで動作しました。以前のバージョンのWindowsを使用しているか、SSHのグラフィカルクライアントを使用する場合は、以下をお読みください。

2018-06-04 UDPATE:

Windows 10では、バージョン1709(win + Rとタイプwinverしてビルド番号を見つける)以降、MicrosoftはOpenSSHクライアントとサーバーのベータ版をリリースしています。キーを作成できるようにするには、OpenSSHサーバーをインストールする必要があります。これを行うには、次の手順に従います。

  1. スタートメニューを開く
  2. 「オプション機能」と入力します
  3. 「オプション機能を追加」を選択します
  4. 「機能を追加」をクリックします
  5. 「Open SSH Client」をインストールします
  6. コンピュータを再起動します

これでプロンプトを開くことができssh-keygen、クライアントはウィンドウによって認識されます。私はこれをテストしていません。Windows 10がない場合、またはベータ版を使用したくない場合は、以下のputtyの使用方法の手順に従ってください。


ssh-keygenWindowsにはインストールされません。PuttyでSSH鍵を作成する方法は次のとおりです。

  1. パテをインストール
  2. PuttyGenを開く
  3. 使用するキーのタイプとバイト数を確認しますPuttyGenパラメータ
  4. 進行状況バーの上にマウスを移動します マウス入力でキーを生成する
  5. これで、パスフレーズを定義して、公開鍵と秘密鍵を保存できます キー作成ダイアログ

opensshキーの場合、さらにいくつかの手順が必要です。

  1. 「貼り付けの公開キー」テキストボックスからテキストをコピーし、「id_rsa.pub」として保存します
  2. openssh形式で秘密鍵を保存するには、「変換」->「OpenSSH鍵のエクスポート」に移動します(パスキーを定義しなかった場合は、パス鍵が不要であることを確認するように求められます) キーをOpenSSH形式に変換するためのメニュー
  3. 「id_rsa」という名前で保存します

これでキーが保存されました。pagentそこに秘密鍵を開始して追加します(Putty形式のppkファイル)。 pagentキーダイアログ

pagent認証が機能するためには実行している必要があることに注意してください


6
SSH-keygenのは、Windows 10ではなく、必ず「オプション機能の管理」のバージョンに含まれている
sebbu

1
@sebbu確かに、Windows 10では、「オプション機能の管理」にOpen SSHサーバーのベータ版をインストールできます。これにより、ssh-keygenを他のいくつかの機能とともに使用できるようになります。しかし、インストールされていないため、簡単に見つけることはできません。回答を更新します。
フランクサンズ

1
@KarlMorrison pagentは、ssh認証を実行するためのGUIです。通常はスタートメニューにあります。
フランクサンズ

1
Open SSHサーバーをインストールする必要はありません。Open SSH Client機能にはssh-keygenが含まれています。
Onots 2018

1
@Onots私は新しいバージョンのWindows 10(2018年10月更新)でテストしましたが、sshクライアントを開くだけで十分ですが、すでにインストールされています:D私は回答を更新します
フランクサンズ

31

WINDOWS:git for windowsがインストールされている場合は、そのフォルダーに移動します。

ここに画像の説明を入力してください

binディレクトリを確認します。sh.exeファイルがあります。それを実行します。

ここに画像の説明を入力してください

次に、次のように入力します。

ssh-keygen -t rsa -C "ここにメールアドレス"

指示に従って、次のように入力します。

猫〜/ .ssh / id_rsa.pub | クリップ

キーをクリップボードにコピーします。これで、その公開鍵をサーバー側に貼り付けることができます。


13
  1. Windowsのコマンドラインを開きます(検索ボックスに「cmd」と入力してEnterキーを押します)。
  2. デフォルトではホームフォルダーになるためcd、別のフォルダーに移動する必要はありません。
  3. タイプ mkdir .ssh

9

警告:キーをC:/User/username/.ssh(デフォルトの場所)に保存する場合は、キーをどこかにバックアップしてください(例:パスワードマネージャー)。

最新のWindows 10 Update(バージョン1607)の後、.sshフォルダーが空になりました。これは私の鍵が常にあった場所ですが、Windowsは更新時にそれらを削除することにしました。

ありがたいことに、私は自分のキーをバックアップしました...しかし、...今日、一部の人々は自分のPCを元に戻すでしょう。


それで、ほとんどのアプリはどこにあなたのキーを保存することを期待していますか?
wcochran

3
おそらくWindows 10をアップグレードするときにWindowsがランダムに削除するフォルダにありますか?
Andrew

8

私はMicrosoft Windows 10 Pro、バージョン10.0.17763ビルド17763を実行しています。C:\ Users \ jrosario \ .sshで.sshフォルダーを簡単に表示できます。アクセス許可などを編集する必要はありません(エクスプローラーでは、 「隠しファイル、フォルダ、ドライブを表示する」): ここに画像の説明を入力してください

キーはknown_hostsという名前のテキストファイルに保存されます。これは次のようになります: ここに画像の説明を入力してください


5

Windows 10では、説明されたルートを使用すると、ssh-keygenジェネレーターでファイル名が指定されていない場合にのみ、フォルダーにファイルが書き込まれるという顕著な例外が見つかりました。

カスタムキー名を指定すると、RSA公開鍵と秘密鍵を含むファイルがフォルダーに書き込まれなくなりました。

  • Windowsコマンドラインを開く
  • タイプ ssh-keygen
  • ファイル名を空白のままにして、Returnキーを押すだけです。
  • パスフレーズを設定する
  • キーファイルを生成します。彼らは今存在します。に保存されますc:/Users/YourUserName/.ssh/

管理コマンドラインとWindows 10 Proを使用


@Braineeeeネガティブ。これはキーを上書きしません。キーが宛先に現在存在する場合、コマンドラインウィンドウでこれらのキーを上書きするかどうかを尋ねられます。同じフォルダ内の他のキーは影響を受けません。私はあなたのコメントを読んだ後、私が試運転をしたところ、そうであることがわかりました。
マーティン

理由がわかりましたか?
Damainman 2017年

@Damainman残念ながら、私はこれをこれ以上探求する機会がなかったので、いいえ:-/
マーティン

1
@Martin、ありがとうございます。別の名前のファイルを作成できます。UNIXの方法でパス区切り文字を提供する必要があります!以下は私のために働いた。ssh-keygen -t ed25519 -C "My Github Key"キーを保存するファイルを入力(C:\ Users \ bilix / .ssh / id_ed25519):c:\ users \ bilix \ .ssh \ id_ed25519_github
Prakash P

@PrakashP助けてくれてうれしい!
マーティン

4

秘密鍵/公開鍵を作成します。

  1. ターミナルまでオープン(git bashPowerShellcmd.exeなど)
  2. 入力する ssh-keygen
  3. Enterを押してデフォルトのファイルを保存(~/.ssh/id_rsa
  4. Enterを押してデフォルトのパスフレーズを取得(パスフレーズなし)
  5. もう一度Enterキーを押します
  6. 出力を見ていることを確認してくださいRSAである3072以上

これで秘密鍵と公開鍵のペアが作成されました。

GITの場合、キーはの強度を持っている2048必要があり、ユーザー.sshディレクトリに配置され、とで呼び出される必要がid_rsaありid_rsa.pubます。キーをどこかに貼り付けるときは、VIMのような新しい行を追加しないプログラムを使用してください。


2

すでに管理者であり、手動でディレクトリを作成できたとしても、「管理者を実行」でコマンドラインを開くことで、ようやく機能しました


1

OpenSSHクライアントを備えたWindows 10を使用している場合、キーを生成できる可能性がありますが、ssh-copy-idコマンドはクライアントツールセットの一部ではないため、ターゲットのLinuxボックスにキーをコピーできません。

この問題が発生したため、これに対処するために小さなPowerShell関数を作成しました。これをプロファイルに追加します。

function ssh-copy-id([string]$userAtMachine, [string]$port = 22) {   
    # Get the generated public key
    $key = "$ENV:USERPROFILE" + "/.ssh/id_rsa.pub"
    # Verify that it exists
    if (!(Test-Path "$key")) {
        # Alert user
        Write-Error "ERROR: '$key' does not exist!"            
    }
    else {  
        # Copy the public key across
        & cat "$key" | ssh $userAtMachine -p $port "umask 077; test -d .ssh || mkdir .ssh ; cat >> .ssh/authorized_keys || exit 1"      
    }
}

ここで要点を取得できます

私はここでそれについて簡単に書いています


0

また、(Windows 10 Proの場合)管理者としてPowershellを実行して、次のように入力することもできます。 ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.