Archaea

Archaea 正しいパスワードを入力しても認証が成功しないことがある

コマンドライン上で引数の値渡しをする場合は、シェル側で変数展開されてしまい期待した通りにパスワードが入力できない場合があります。

Archaea tools コマンドでも同様で、例えば、以下のようにパスワード値にドル記号($)を含む場合です。

[user@workspace ~]$ hcp --password=hoge$pass src/ user@192.168.30.100:dst/
Permission denied.
hcp: Authentication failed
[user@workspace ~]$

一般的なシェル上の変数展開パターンの一例を示します。
・$の後に記号はそのままで、展開されないものもある。例:$%
[user@workspace ~]$ echo hoge$
hoge$
[user@workspace ~]$ echo hoge$%
hoge$%
[user@workspace ~]$

・$の後に記号で展開されるものもある。例:$# (引数の数)

[user@workspace ~]$ echo hoge$#
hoge0
[user@workspace ~]$

・$の後に数字、文字は展開される。例:$0 シェルスクリプト名
変数が未定義であれば空文字列、定義済みで値があればその値に展開される。
[user@workspace ~]$ echo hoge$0
hoge-bash
[user@workspace ~]$ echo hoge$1
hoge
[user@workspace ~]$ echo hoge$x
hoge
[user@workspace ~]$ export X=aaa
[user@workspace ~]$ echo hoge$X
hogeaaa
[user@workspace ~]$

パスワード文字列中に記号’$’を含む場合は、予期せぬ変数展開を防ぐためにシェル上での値渡しはシングルクォーテーションで囲むことを推奨します。
[user@workspace ~]$ echo 'hoge$%'
hoge$%
[user@workspace ~]$ echo 'hoge$#'
hoge$#
[user@workspace ~]$ echo 'hoge$0'
hoge$0
[user@workspace ~]$ echo 'hoge$x'
hoge$x
[user@workspace ~]$ export X=aaa
[user@workspace ~]$ echo 'hoge$X'
hoge$X
[user@workspace ~]$

どのように展開されているか知るために、
Archaea tools コマンドでは、–config-testオプションを使い、入力値を確認することが可能です。
[user@workspace ~]$ hcp --password=hoge$pass --config-test
hcp client (hcp) 1.5.9_10 / Linux (HpFP2 2.0.0.91_26 WSAPI 0.0.1.36 WS 4.2.0-2)
   
-- [Sources] ---------------------------------------------------------------
-- [Destination] -----------------------------------------------------------
-- [Command Options] -------------------------------------------------------
   
   
   
user : -
password : hoge // ★ アプリに渡された値
version : disable
help : disable
mcd : -
   
   
   
[user@workspace ~]$

[user@workspace-a9 ~]$ hcp --password='hoge$pass' --config-test
hcp client (hcp) 1.5.9_10 / Linux (HpFP2 2.0.0.91_26 WSAPI 0.0.1.36 WS 4.2.0-2)
   
-- [Sources] ---------------------------------------------------------------
-- [Destination] -----------------------------------------------------------
-- [Command Options] -------------------------------------------------------
   
   
   
user : -
password : hoge$pass // ★ アプリに渡された値
version : disable
help : disable
mcd : -
   
   
   
[user@workspace ~]$

–config-optionオプションについてはオンラインドキュメントも参考にしてください。
【オンラインドキュメント】コマンドリファレンス – クライアントコマンド (config-test)

TOP