2017-06-28 3 views
1

これは私の根本的な問題であると私は根本的に誤解していると確信しています。私はsshkitを使用して、IPv6アドレッシングを使用してサーバーに接続し、いくつかのファイルをアップロードしています。Ruby sshkit IPv6文字列アドレッシングの問題

私はそうのようなアドレスを使用してサーバーにSSHで接続することができます

2001:aaa:bbb:cc:dddd:eeee:ffff:gggg

私は同じことを行うためにsshkitを活用しようとするまでは問題はありません。たとえば以下同じIPv6の文字列は、私が実行しているスクリプト内で(多くのアドレスを持っている)の配列で表現される方法を示しています。

on ["[2001:aaa:bbb:cc:dddd:eeee:ffff:gggg]"], in: :parallel do |host| #some stuff end

私は何を見終わることです:

Exception on host 2001:aaa:bbb:cc:dddd:eeee:ffff caught: getaddrinfo: nodename nor servname provided, or not known

末尾のバイトが切り捨てられているように見えますか?そのIPv6アドレス文字列を書式設定する別の方法はありますか?

答えて

0

私はPRを提出する予定の瞬間にSSHKitにバグがあります。基本的に、末尾のバイトは、特に示されていない限り、ポート番号として呑み込まれます。

### Without port number, it parses incorrectly 
SSHKit::Host.new '[2001:db8:85a3:8d3:1319:8a2e:370:7348]' 
# => #<SSHKit::Host:0x007fc12318d7d8 @keys=[], @local=false, @user=nil, @hostname="2001:db8:85a3:8d3:1319:8a2e:370", @port=7348> 

周りの作業では、ポート

### With port number it works 
SSHKit::Host.new '[2001:db8:85a3:8d3:1319:8a2e:370:7348]:22' 
# => #<SSHKit::Host:0x007fc1231e46c8 @keys=[], @local=false, @user=nil, @hostname="2001:db8:85a3:8d3:1319:8a2e:370:7348", @port=22> 
を指定することです