Using the method described in the , representing (10^n - 1)/9 as a difference of squares x^2 - y^2 and checking x^2 to see if it satisfies the conditions.
var N = 20 # how many terms to compute
var arr = Set(1)
for n in (1..Inf) {
var r = (10**n - 1)/9
arr << r.diff_of_squares.map{.head}.map{.sqr.digits}.grep {|d|
(d[-1] != 1) && d.none{.is_zero} && d.map{.dec}.digits2num.is_square
}.map{.digits2num}...
break if (arr.len >= N)
}
arr.sort.first(N).each_kv {|k,n|
say "#{'%2d' % k+1}: #{n}"
}