zoukankan      html  css  js  c++  java
  • ssh、sftp、scp免密码登录

    1.问题出现

      首先,我在linux主机上编译好程序,但是每次都要把可执行文件通过filezilla或者scrt拉倒板子中去,十分的麻烦。所以我想到利用makefile中执行shell命令的方法,来实现直接上传文件。

      我看了一些资料,感觉还是对sftp中“服务器”,“客户端”这两个概念不太理解。但是我现在还是知道了如何简便的操作,并且这里我不说服务器和客户端这个名词,免得理解麻烦。

    2.问题解决

      1.在我的linux主机上生成ssh key。

    ssh-keygen –t rsa

      这里会出现一些问题,一路回车即可,这里我是已经生成过了,所以问我是否覆盖,覆盖即可。

    zqh@linux:~$ ssh-keygen -t rsa
    Generating public/private rsa key pair.
    Enter file in which to save the key (/home/zqh/.ssh/id_rsa):
    /home/zqh/.ssh/id_rsa already exists.
    Overwrite (y/n)? y
    Enter passphrase (empty for no passphrase):
    Enter same passphrase again:
    Your identification has been saved in /home/zqh/.ssh/id_rsa.
    Your public key has been saved in /home/zqh/.ssh/id_rsa.pub.
    The key fingerprint is:
    SHA256:QPS0Nbi2WPOmlHBFJgu2OZSA7Lostg87ptwWnfXGP1g zqh@linux
    The key's randomart image is:
    +---[RSA 2048]----+
    | . ..o*.oo=      |
    |  o  +.*.*..     |
    | .    = +o       |
    |  .   .+*        |
    | .  . o*S=       |
    |.  . o. ++oE     |
    |.o  .  ..o+      |
    |+=+.    .. o     |
    |*+=o        .    |
    +----[SHA256]-----+

      2.将linux主机上的公匙上传到arm开发板

    zqh@linux:~/.ssh$ cat id_rsa.pub >> authorized_keys    #复制key

      复制key之后将key上传,到arm板的.ssh/文件(这个时候还是问我输入密码)

    zqh@linux:~/.ssh$ scp authorized_keys root@172.24.41.12:/root/.ssh
    root@172.24.41.12's password:
    authorized_keys                                         100%  782     0.8KB/s   00:00

      3.完成

      尝试sftp到arm开发板,发现不需要密码了,那么我现在就可以免密码使用scp直接传文件,非常方便

    zqh@linux:~/.ssh$ sftp root@172.24.41.12
    Connected to 172.24.41.12.
    sftp>

    3.Makefile

    #General Purpose Makefile for cross compile Linux Kernel module
    ifneq ($(KERNELRELEASE),)
    
    obj-m := led.o  #+=是连接字符串
    
    else
    
    OBJ := led
    ARCH := arm    
    CROSS_COMPILE := /usr/local/arm/arm-linux-gnueabihf-4.9/bin/arm-linux-gnueabihf-
    KERN_DIR := /home/zqh/lichee/linux-zero-4.14.y  #选择内核路径
    SOURCE := main.c
    TARGET := test_led
    PWD :=$(shell pwd)   #当前路径
    LICHEDIR := /root/led_driver/
    
    all:
            make ARCH=$(ARCH) CROSS_COMPILE=$(CROSS_COMPILE) -C $(KERN_DIR) M=$(PWD) modules
            $(CROSS_COMPILE)gcc $(SOURCE) -o $(TARGET)
    clean:                                   
            rm -f *.ko *.o *.symvers *.mod.c *.mod.o *.order .*.o.ko.cmd .*.ko.cmd .*.mod.o.cmd .*.o.cmd $(TARGET)        
    install:
            scp $(PWD)/$(OBJ).ko root@172.24.41.12:$(LICHEDIR)
            scp $(PWD)/$(TARGET) root@172.24.41.12:$(LICHEDIR)
    endif

    这样,执行make install时就可以自动将我的文件下载到arm开发板中了。

  • 相关阅读:
    【题解】【BT】【Leetcode】Populating Next Right Pointers in Each Node
    【题解】【BT】【Leetcode】Binary Tree Level Order Traversal
    【题解】【BST】【Leetcode】Unique Binary Search Trees
    【题解】【矩阵】【回溯】【Leetcode】Rotate Image
    【题解】【排列组合】【素数】【Leetcode】Unique Paths
    【题解】【矩阵】【回溯】【Leetcode】Unique Paths II
    【题解】【BST】【Leetcode】Validate Binary Search Tree
    【题解】【BST】【Leetcode】Convert Sorted Array to Binary Search Tree
    第 10 章 判断用户是否登录
    第 8 章 动态管理资源结合自定义登录页面
  • 原文地址:https://www.cnblogs.com/ZQQH/p/8681783.html
Copyright © 2011-2022 走看看