ICTについて使える情報を発信していきます. 遠回りしたり, 自分のペースで...

このブログを検索

[エラー対処] Oracle Cloudのインスタンス作成時に"Out of host capacity."と出てインスタンスが作成できない

Oracle Cloudでインスタンスを作成する際にOut of host capacity.とでてインスタンスを作成することができませんでした.

解決方法を一言で

待つか, インスタンスの可用性ドメインを変えましょう.

環境

  • Oracle Cloud Instance

エラー発生

インスタンスを作ろうとすると, Out of host capacity.と出て, インスタンスの作成を行うことができませんでした.

"Out of host capacity"

対処

サポートに問い合わせたところ,

「エンジニアがその問題に取り組んでいます. しばらく待つか, 画面の右上からリージョンを変えたあと, インスタンスの可用性ドメインを変更してください.」

と言われました. (文章のログは取るの忘れてました…すみません.

しばらく待つ場合, 体感では1週間待てばインスタンスの作成が行えることが多いです.

すぐに試したい場合は, リージョンを変え, その後に可用性ドメインを変更する作業が必要です.

Read More

秘密鍵と公開鍵のペアを確認する方法

コンカイハ, 秘密鍵と公開鍵のペアを調べる方法がわからなかったので, やり方を調べてみました.

ある公開鍵が指定した秘密鍵とペアなのか調べる方法

Shellで, 秘密鍵と公開鍵のパスが入った変数をそれぞれ設定しておきます.

$ PRIVKEY=<path>
$ TESTKEY=<path>

その後, 次のコマンドを打ちます.

$ diff -sq <( ssh-keygen -yef "$PRIVKEY" ) <( ssh-keygen -yef "$TESTKEY" )

コマンド実行後にFiles /dev/fd/11 and /dev/fd/12 are identical と表示されていればその鍵同士はペアです.

$ diff -sq <( ssh-keygen -yef "$PRIVKEY" ) <( ssh-keygen -yef "$TESTKEY" )
Files /dev/fd/11 and /dev/fd/12 are identical
$ # `Files /dev/fd/11 and /dev/fd/12 are identical`と表示された.

間違っている鍵同士なら, Files /dev/fd/11 and /dev/fd/12 differと表示されます.

$ diff -sq <( ssh-keygen -yef "$PRIVKEY" ) <( ssh-keygen -yef "$TESTKEY" )
Files /dev/fd/11 and /dev/fd/12 differ
$ # `Files /dev/fd/11 and /dev/fd/12 differ`と表示された.

実験1 正しいペアの場合

秘密鍵と公開鍵のペアを作成しておきます. 今回はtestなのでbitは2048で.

$ ssh-keygen -t rsa -b 2048 rsa -N "" -f ~/.ssh/test_rsa

その後, 秘密鍵と公開鍵のパスを指定します.

$ PRIVKEY=~/.ssh/test_rsa
$ TESTKEY=~/.ssh/test_rsa.pub

diffを取ります.

$ diff -sq <( ssh-keygen -yef "$PRIVKEY" ) <( ssh-keygen -yef "$TESTKEY" )
Files /dev/fd/11 and /dev/fd/12 are identical

実行結果にFiles /dev/fd/11 and /dev/fd/12 are identicalと表示されたため, ~/.ssh/test_rsa~/.ssh/test_rsa.pubはペアです.

実験2 違うペアの場合

また新しいペアを作成します.

$ ssh-keygen -t rsa -N "" -b 2048 -f ~/.ssh/test_rsa

その後, それぞれ異なる秘密鍵と公開鍵のパスを指定します.

$ PRIVKEY=~/.ssh/test_rsa
$ TESTKEY=~/.ssh/test_diff_rsa.pub

diffを取ります.

$ diff -sq <( ssh-keygen -yef "$PRIVKEY" ) <( ssh-keygen -yef "$TESTKEY" )
Files /dev/fd/11 and /dev/fd/12 differ

Files /dev/fd/11 and /dev/fd/12 differが表示されたので, ~/.ssh/test_rsa~/.ssh/test_diff_rsa.pubはペアではありません.

コマンドの意味

$ diff -sq <( ssh-keygen -yef "$PRIVKEY" ) <( ssh-keygen -yef "$TESTKEY" )

について, 説明していきます.

まずはssh-keygen -yef "$PRIVKEY"の部分を説明します. オプションは次のようになっています.

  • -y: このオプションは OpenSSH 形式の秘密鍵ファイルを読み、OpenSSH 形式の公開鍵を標準出力に表示します。
  • -e: このオプションは OpenSSH 形式の秘密鍵あるいは公開鍵ファイルを読み、"-m" オプションで指定された形式で標準出力に表示します。デフォルトの形式は"RFC4716"です。このオプションを使うと、OpenSSH の鍵をいくつかの商用 SSH 実装で使われている形式の鍵に変換できます。
  • -f <ファイル名>: 鍵を格納するファイル名を指定します。
引用元 : OpenSSH-7.3p1 日本語マニュアルページ (2016/10/15) #SSH-KEYGEN (1)

つまり, 指定したファイルを"RFC4716"という書式に従って標準出力しています. 指定したファイルが秘密鍵の場合は, 公開鍵を出力します.

次に, diff -sq <( ... ) <( ... )について説明します.

オプションは次のとおりになっています.

  • -s, --report-identical-files
    2 つのファイルが同じだったときも報告する。
  • -q, --brief
    ファイルが違うかどうかだけを報告する。 違いの詳細は報告しない。
引用元 : DIFF

この2つのオプションを付けることで, ファイルの違いのみを報告するようにしています.

diff <( ... ) <( ... ) については名前付きパイプというものを使用していて, <( ... )の部分では入力をファイル扱いしてくれるらしいです.

まとめ

ということで, 鍵同士のペアを確認する方法を書きました. 参考になれば幸いです.

参考文献

Read More

[エラー対処] Oracle Cloudのインスタンスでsshができない

Oracle Cloudでインスタンスを作成したはいいものの, なかなかsshできなくて1ヶ月ぐらいハマったので, 共有します.

解決方法を一言で

インスタンス名に日本語を使わないようにしましょう.

環境

  • Oracle Cloud Instance(CentOS, OracleOS. sshされる側)
  • MacOS(client. sshする側)

エラー発生

インスタンスを作ってSSHしても, Permissionがないと言われます.

ssh opc@132.145.122.58 -i ~/.ssh/oracle_rsa
opc@132.145.122.58: Permission denied (publickey,gssapi-keyex,gssapi-with-mic).

もちろん, IPアドレスと鍵が一致していることは確認しています.

対処

根本的な原因はよくわかっていませんが, インスタンス名から日本語を除外することでsshができるようになりました.

それでも治らない場合はUser名が間違っている可能性があります.

  • Ubuntuでイメージを作成した場合: ubuntu@<ip addr>
  • CentOS, OracleOSでイメージを作成した場合: opc@<ip addr>

となりますので注意してください.

それでも入れない場合は, 秘密鍵や公開鍵があたっているか確認してください.

Read More

Popular Posts